public async Task Handle(OrderCreatedIntegrationEvent @event) { _logger.LogDebug($"Handling the `Order Created` event from Order service"); var orderId = @event.Id.ToString("N"); MimeMessage _message = new MimeMessage(); _message.To.Add(new MailboxAddress(_mailOptions.MailTo)); _message.From.Add(new MailboxAddress(_mailSettings.Email)); _message.Subject = "ORDER CREATED:: " + orderId; _message.Body = new TextPart(TextFormat.Html) { Text = "ORDER CREATED:: " + orderId }; await _emailService.SendAsync(_message); await Task.FromResult(false); }
public async Task <IActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { if (await _userService.Exists(model.Email)) { var user = await _userService.Register(model); var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = user.Code }, protocol: HttpContext.Request.Scheme); await _eMailService.SendAsync(user.Email, $"Подтвердите электронный адрес", $"<h3>Web-приложение \"Электронный журнал\"</h3><br/>" + $"Подтвердите регистрацию, перейдя по ссылке: <a href='{callbackUrl}'>ссылка</a><br/>" + $"<h4>Автор - Чаевский Андрей</h4>"); return(Content("Для завершения регистрации проверьте электронную почту и перейдите по ссылке, указанной в письме")); } else { ModelState.AddModelError("", "Некорректные логин и(или) пароль"); } } foreach (var errorValue in ModelState.Keys) { if (ModelState[errorValue].Errors.Count != 0) { foreach (var error in ModelState[errorValue].Errors.ToList()) { ModelState.AddModelError(errorValue, error.ErrorMessage); } } } ViewBag.Groups = _groupService.GetGroups(); return(View(model)); }
public async Task <ObjectResult> SaveAbsence(List <bool> isPresent, int calendarSheduleTimeSpendingId, string baseUrl) { var userGroup = _userService.GetCurrentUserGroup(); var calendarSheduleTimeSpending = _eJContext.CalendarSheduleTimeSpendings.Find(calendarSheduleTimeSpendingId); var usersInGroup = _userService.GetCurrentUserAllGroup() .Select(x => new { x.Id, x.Email, x.GroupId }).ToList(); var calendarSheduleTimeSpendings = _eJContext.CalendarSheduleTimeSpendings.Where(x => x.SheduleTimeSpending.TimeSpending.Number == calendarSheduleTimeSpending.SheduleTimeSpending.TimeSpending.Number && x.Calendar.Date == calendarSheduleTimeSpending.Calendar.Date && x.SheduleTimeSpending.SheduleSubject.GroupShedule.Group.Number == userGroup.Number && x.SheduleTimeSpending.SheduleSubject.GroupShedule.Group.CourseId == userGroup.CourseId); var absenceAllGroup = _eJContext.Absences.Where(x => calendarSheduleTimeSpendings.Select(y => y.Id) .Contains(x.CalendarSheduleTimeSpendingId)).ToList(); if (absenceAllGroup.Count != 0) { for (int i = 0; i < absenceAllGroup.Count(); i++) { var indexOfUser = usersInGroup.Select(x => x.Id).ToList().IndexOf(absenceAllGroup[i].User.Id); if (indexOfUser != -1) { var currentCalendarSheduleTimeSpending = calendarSheduleTimeSpendings.FirstOrDefault(x => x.SheduleTimeSpending.SheduleSubject.GroupShedule.GroupId == usersInGroup[indexOfUser].GroupId); var classType = currentCalendarSheduleTimeSpending.SheduleTimeSpending.ClassType.Name; var subjectName = currentCalendarSheduleTimeSpending.SheduleTimeSpending.SheduleSubject.Subject.Name ?? currentCalendarSheduleTimeSpending.SheduleTimeSpending.SheduleSubject.Subject.ShortName; if (!isPresent[indexOfUser]) { var eMailSendingResult = await _eMailService.SendAsync(absenceAllGroup[i].User.Email, $"Уведомление о пропуске занятия", $"<a href='{baseUrl}'><h3>Web-приложение \"Электронный журнал\"</h3></a><br/>" + $"Произошла ошибка - была неправильная отметка о Вашем пропуске занятия.<br />" + $"Эта ошибка была исправлена. " + $"Вы присутствовали на занятии {calendarSheduleTimeSpending.Calendar.Date.ToShortDateString()}<br />" + $"{classType}<br/>{subjectName}" + $"<h4>Автор - Чаевский Андрей</h4>"); if (eMailSendingResult) { _eJContext.Absences.Remove(absenceAllGroup[i]); } } } } } for (int i = 0; i < usersInGroup.Count(); i++) { if (isPresent[i] && absenceAllGroup.Select(x => x.UserId).ToList() .IndexOf(usersInGroup[i].Id) == -1) { var currentCalendarSheduleTimeSpending = calendarSheduleTimeSpendings.FirstOrDefault(x => x.SheduleTimeSpending.SheduleSubject.GroupShedule.GroupId == usersInGroup[i].GroupId); var classType = currentCalendarSheduleTimeSpending.SheduleTimeSpending.ClassType.Name; var subjectName = currentCalendarSheduleTimeSpending.SheduleTimeSpending.SheduleSubject.Subject.Name ?? currentCalendarSheduleTimeSpending.SheduleTimeSpending.SheduleSubject.Subject.ShortName; var eMailSendingResult = await _eMailService.SendAsync(usersInGroup[i].Email, $"Уведомление о пропуске занятия", $"<a href='{baseUrl}'><h3>Web-приложение \"Электронный журнал\"</h3></a><br/>" + $@"Вы отсутствовали на занятии {calendarSheduleTimeSpending.Calendar.Date .ToShortDateString()}<br />" + $"{classType}<br/>{subjectName}" + $"<h4>Автор - Чаевский Андрей</h4>"); if (eMailSendingResult) { var absenceInRepository = _eJContext.Absences.Add(new Absence { UserId = usersInGroup[i].Id, CalendarSheduleTimeSpendingId = currentCalendarSheduleTimeSpending.Id }); _eJContext.AbsenceNotifications.Add(new AbsenceNotification { AbsenceId = absenceInRepository.Entity.Id, SendDate = DateTime.Now }); } } } _eJContext.SaveChanges(); return(await Task.Run(() => { return new OkObjectResult(true); })); }