private ActionResult AddAdvertisingError(User idproof, UserAddAdvertisingViewModel advertising) { UserAdvertisingViewModel uavm = new UserAdvertisingViewModel() { RecordedAdvertisings = db.UserAdvertising.Include(x => x.AdvertisingFrom).Where(x => x.AdvertisingFromId == idproof.Id).OrderByDescending(x => x.ReportTime).ToList(), User = idproof }; uavm.AdvertisingToAdd = advertising; ViewBag.Error = true; return(View("~/Areas/mitarbeit/Views/User/Advertising.cshtml", uavm)); }
public ActionResult AddAdvertising(int id, UserAdvertisingViewModel advertisingvm) { User idproof = userManager.FindByIdAsync(id).Result; if (idproof == null) { Response.StatusCode = 404; Response.TrySkipIisCustomErrors = true; return(View("~/Areas/mitarbeit/Views/User/_NotFound.cshtml")); } UserAddAdvertisingViewModel advertising = advertisingvm.AdvertisingToAdd; UserAdvertisingViewModel uavm; var forms = cache.Get <List <UserAdvertisingForm> >("AdvertisingFormsFull"); ViewBag.AdvertisingForms = forms; ViewBag.AdvertisingFormIds = cache.Get <Dictionary <int, string> >("AdvertisingForms"); int? adtoid = null; bool isTargeted = forms.First(x => x.Id == advertising.AdvertisingFormId).IsTargeted; if (advertising.UserName != null && isTargeted) // if we don't have a username to work with, error out. { User u = userManager.FindByNameAsync(advertising.UserName).Result; // If we did not find a username and the advertising form is targeted, error out. if (u == null && isTargeted) { return(AddAdvertisingError(idproof, advertising)); } else if (u != null && isTargeted) // If we did find a user and it is a targeted advertising form, set the target user. { adtoid = u.Id; } } else if (advertising.UserName == null && isTargeted) { return(AddAdvertisingError(idproof, advertising)); } int currentUserId = userManager.FindByNameAsync(User.Identity.Name).Result.Id; UserAdvertising ad = new UserAdvertising() { AdvertisingFormId = advertising.AdvertisingFormId, ReportTime = DateTime.Now, ScreenshotUrl = advertising.ScreenshotUrl ?? "", Url = advertising.Url, AdvertisingFromId = id, AdvertisingToId = adtoid, AuthorId = currentUserId }; Dictionary <string, int> actions = cache.Get <Dictionary <string, int> >("SystemUserNoteActions"); Dictionary <int, string> bvsroles = cache.Get <Dictionary <int, string> >("BvsRoles"); UserAdvertisingNoteViewModel uanvm = new UserAdvertisingNoteViewModel() { Uaavm = advertising, AdvertisingForm = forms.Where(g => g.Id == advertising.AdvertisingFormId).First().Name }; UserNote n = new UserNote() { AuthorId = currentUserId, ActionId = actions["advertising"], Created = DateTime.Now, IsDeletable = false, RoleIdNeeded = bvsroles.First(g => g.Value == "Bereichsassistent").Key, UserId = id, Content = this.RenderViewToString("~/Areas/mitarbeit/Views/_NoteTemplates/Advertising.cshtml", uanvm), UnparsedContent = "" }; db.UserAdvertising.Add(ad); db.UserNotes.Add(n); db.SaveChanges(); uavm = new UserAdvertisingViewModel() { RecordedAdvertisings = db.UserAdvertising.Include(x => x.AdvertisingFrom).Where(x => x.AdvertisingFromId == id).OrderByDescending(x => x.ReportTime).ToList(), User = idproof }; return(View("~/Areas/mitarbeit/Views/User/Advertising.cshtml", uavm)); }