internal EmailResult MemberMoveDateEMail(MemberMoveDateMailModel model) { if (model.SourceUser != null) { To.Add(model.SourceUser.Email); } if (model.TargetUser != null) { To.Add(model.TargetUser.Email); } CC.Add(model.User.Email); Subject = $"Übertragung von Terminen"; return(Email("MemberMoveDateEMail", model)); }
public JsonResult MoveDates(Guid sourceDozId, Guid targetDozId) { var sourceMember = Db.Members.SingleOrDefault(x => x.Id == sourceDozId); var targetMember = Db.Members.SingleOrDefault(x => x.Id == targetDozId); // alle termine, des abgebenden Dozenten var dates = Db.ActivityDates.Where(x => x.Hosts.Any(h => h.Id == sourceMember.Id) && x.End > DateTime.Now).OrderBy(x => x.Begin).ToList(); // Umhängen foreach (var date in dates) { date.Hosts.Remove(sourceMember); // nur hinzufügen, falls nicht eh schon dabe if (!date.Hosts.Contains(targetMember)) { date.Hosts.Add(targetMember); } } Db.SaveChanges(); // jetzt noch eine Mail senden var userService = new UserInfoService(); var mailModel = new MemberMoveDateMailModel { SourceUser = userService.GetUser(sourceMember.UserId), TargetUser = userService.GetUser(targetMember.UserId), SourceMember = sourceMember, TargetMember = targetMember, AdminMember = GetMyMembership(), User = GetCurrentUser(), Dates = dates }; var mail = new MailController(); mail.MemberMoveDateEMail(mailModel).Deliver(); // Redirect return(Json(new { result = "Redirect", url = Url.Action("Index") })); }