Ejemplo n.º 1
0
        public async Task <ActionResult> Edit([Bind(Include = "Id,Title,Description,Created,Updated,ProjectId,TicketTypeId,TicketPriorityId,TicketStatusId,OwnerUserId,AssignedToId")] Tickets model)
        {
            var           user        = db.Users.Find(User.Identity.GetUserId());
            ProjectHelper HistoryHelp = new ProjectHelper(db);

            var tickets = db.Tickets.Find(model.Id);
            var noty    = new TicketNotifications();

            noty.open = false;

            if (!(tickets.Title == model.Title) || (tickets.TicketPriorityId == model.TicketPriorityId) || (tickets.TicketStatusId == model.TicketStatusId) ||
                (tickets.AssignedToId == model.AssignedToId) || (tickets.ProjectId == model.ProjectId) || (tickets.TicketTypeId == model.TicketTypeId))
            {
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.Title, model.Title, "Title");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.TicketPriorityId.ToString(), model.TicketPriorityId.ToString(), "TicketPriority");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.TicketStatusId.ToString(), model.TicketStatusId.ToString(), "TicketStatus");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.TicketTypeId.ToString(), model.TicketTypeId.ToString(), "TicketType");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.ProjectId.ToString(), model.ProjectId.ToString(), "Project");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.Description, model.Description, "Description");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.AssignedToId, model.AssignedToId, "AssignedTo");
                HistoryHelp.AddNoty(tickets.Id, user.Id, noty.open);
            }


            tickets.TicketPriorityId = model.TicketPriorityId;
            tickets.TicketStatusId   = model.TicketStatusId;
            tickets.OwnerUserId      = user.Id;
            tickets.Created          = tickets.Created = DateTime.Now;
            db.Tickets.Add(model);
            //tickets.Id = model.Id;
            var currproject = db.Projects.Find(tickets.ProjectId);


            if (ModelState.IsValid)
            {
                db.Entry(tickets).State = EntityState.Modified;
                db.SaveChanges();

                //Send Email
                var svc = new EmailService();
                var msg = new IdentityMessage();
                msg.Subject = "Edits";
                msg.Body    = "\r\n You're ticket titled," + tickets.Title + "was edited." + "\r\n";

                msg.Destination = currproject.Users.Select(u => u.Email).ToString();

                await svc.SendAsync(msg);

                return(RedirectToAction("myIndex", "Tickets"));
            }
            //ViewBag.AssignedToId = new SelectList(db.Users, "Id", "FirstName", tickets.AssignedToId);
            //ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "FirstName", tickets.OwnerUserId);
            ViewBag.ProjectId        = new SelectList(db.Projects, "Id", "Name", tickets.ProjectId);
            ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", tickets.TicketPriorityId);
            ViewBag.TicketStatusId   = new SelectList(db.TicketStatuses, "Id", "Name", tickets.TicketStatusId);
            ViewBag.TicketTypeId     = new SelectList(db.TicketTypes, "Id", "Name", tickets.TicketTypeId);


            return(View("myIndex", "Tickets"));
        }
        public ActionResult Edit([Bind(Include = "Id,Title,Description,Created,Updated,ProjectId,TicketTypeId,TicketPriorityId,TicketStatusId,OwnerUserId,AssignedToId")] Tickets model)
        {
            var           user        = db.Users.Find(User.Identity.GetUserId());
            ProjectHelper HistoryHelp = new ProjectHelper(db);

            var tickets = db.Tickets.Find(model.Id);
            var noty    = new TicketNotifications();

            noty.open = false;

            if (!(tickets.Title == model.Title) || (tickets.TicketPriorityId == model.TicketPriorityId) || (tickets.TicketStatusId == model.TicketStatusId) ||
                (tickets.AssignedToId == model.AssignedToId) || (tickets.ProjectId == model.ProjectId) || (tickets.TicketTypeId == model.TicketTypeId))
            {
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.Title, model.Title, "Title");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.TicketPriorityId.ToString(), model.TicketPriorityId.ToString(), "TicketPriority");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.TicketStatusId.ToString(), model.TicketStatusId.ToString(), "TicketStatus");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.TicketTypeId.ToString(), model.TicketTypeId.ToString(), "TicketType");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.ProjectId.ToString(), model.ProjectId.ToString(), "Project");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.Description, model.Description, "Description");
                HistoryHelp.AddHistory(tickets.Id, user.Id, tickets.AssignedToId, model.AssignedToId, "AssignedTo");
                HistoryHelp.AddNoty(tickets.Id, user.Id, noty.open);
            }


            tickets.TicketPriorityId = model.TicketPriorityId;
            tickets.TicketStatusId   = model.TicketStatusId;
            tickets.OwnerUserId      = user.Id;
            tickets.Created          = tickets.Created = DateTime.Now;
            db.Tickets.Add(model);
            //tickets.Id = model.Id;

            if (ModelState.IsValid)
            {
                db.Entry(tickets).State = EntityState.Modified;
                db.SaveChanges();

                return(RedirectToAction("myIndex", "Tickets"));
            }
            //ViewBag.AssignedToId = new SelectList(db.Users, "Id", "FirstName", tickets.AssignedToId);
            //ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "FirstName", tickets.OwnerUserId);
            ViewBag.ProjectId        = new SelectList(db.Projects, "Id", "Name", tickets.ProjectId);
            ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", tickets.TicketPriorityId);
            ViewBag.TicketStatusId   = new SelectList(db.TicketStatuses, "Id", "Name", tickets.TicketStatusId);
            ViewBag.TicketTypeId     = new SelectList(db.TicketTypes, "Id", "Name", tickets.TicketTypeId);


            return(View("myIndex", "Tickets"));
        }