Example #1
0
        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));
        }
Example #2
0
        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));
        }