Skip to content

Commit

Permalink
Fix bugs with changing teachers and subscription
Browse files Browse the repository at this point in the history
  • Loading branch information
wh0o7 committed Oct 23, 2023
1 parent 03a3745 commit a814e39
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 7 deletions.
11 changes: 7 additions & 4 deletions TeachersTimetable/Services/AccountService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,9 @@ public async Task<bool> ChangeTeacher(User telegramUser, string? teacherName)
teacherNames[i] = teacherNames[i].Trim();
}

var correctTeacherNames = this._parseService.Teachers.Where(g => teacherNames.Any(teacher =>
g.ToLower().Trim().Contains(teacher.ToLower().Trim()))).ToArray();
var correctTeacherNames = teacherNames
.Select(t => this._parseService.Teachers.FirstOrDefault(teacher =>
teacher.StartsWith(t, StringComparison.InvariantCultureIgnoreCase))).Where(correctTeacher => correctTeacher is not null).ToArray();

if (correctTeacherNames is null || correctTeacherNames.Length == 0)
{
Expand Down Expand Up @@ -131,8 +132,10 @@ public async Task UpdateNotificationsStatus(User telegramUser)

this._botService.SendMessage(new SendMessageArgs(telegramUser.Id,
user.Notifications
? $"Вы успешно подписались на расписание преподавателя {user.Teachers}"
: $"Вы успешно отменили подписку на расписание преподавателя {user.Teachers}")
? user.Teachers.Length == 1
? $"Вы успешно подписались на расписание преподавателя {user.Teachers[0]}"
: $"Вы успешно подписались на расписание преподавателей: {Utils.GetTeachersString(user.Teachers)}"
: "Вы успешно отменили подписку")
{
ReplyMarkup = keyboard
});
Expand Down
4 changes: 2 additions & 2 deletions TeachersTimetable/Services/CommandsService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ private async void OnMessageReceive(Message message)
case "Сменить преподавателя":
{
this._botService.SendMessage(new SendMessageArgs(sender.Id,
$"Для оформления подписки на преподавателей отправьте их фамилии.(Максимум - 5. Пример: Кулецкая, Шавейко, Потоцкий, Левонюк, Протасеня)\nВаши выбранные преподаватели: ```{string.Join(", ", (await this._accountService.GetUserById(sender.Id))?.Teachers ?? Array.Empty<string>())}```")
$"Для оформления подписки на преподавателей отправьте их фамилии.(Максимум - 5. Пример: Кулецкая, Шавейко, Потоцкий, Левонюк, Протасеня)\nВаши выбранные преподаватели: ```\n{Utils.GetTeachersString((await this._accountService.GetUserById(sender.Id))?.Teachers ?? Array.Empty<string>())}\n```")
{
ParseMode = ParseMode.Markdown
});
Expand Down Expand Up @@ -165,4 +165,4 @@ private async void OnMessageReceive(Message message)
}
}
}
}
}
2 changes: 1 addition & 1 deletion TeachersTimetable/Services/Utils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,5 +101,5 @@ public static bool IsDateBelongsToInterval(DateTime? date, DateTime?[]? interval
return null;
}

public static string GetTeachersString(string[] teachers) => string.Join(", ", teachers);
public static string GetTeachersString(string?[] teachers) => string.Join(", ", teachers);
}

0 comments on commit a814e39

Please sign in to comment.