예제 #1
0
        public ActionResult CreateTickets(int id)
        {
            CreateTicketsViewModel createTicketsView = new CreateTicketsViewModel();

            createTicketsView.FlightId = id;
            return(View("CreateTickets", createTicketsView));
        }
예제 #2
0
        public bool CreateTickets(CreateTicketsViewModel createTickets)
        {
            List <Ticket>       tickets             = new List <Ticket>();
            FlightBusinessLogic flightBusinessLogic = new FlightBusinessLogic();
            Flight flight = flightsContext.Flight
                            .Where(e => e.FlightId == createTickets.FlightId)
                            .FirstOrDefault();



            for (int i = 0; i < createTickets.Count; i++)
            {
                Ticket ticket = new Ticket
                {
                    Clas   = createTickets.ToClass.ToString(),
                    Price  = createTickets.Price,
                    Status = null,
                    Flight = flight
                };
                tickets.Add(ticket);
            }


            flightsContext.Tickets.AddRange(tickets);
            flightsContext.SaveChanges();
            return(true);
        }
예제 #3
0
        public ActionResult Edit(int?id)
        {
            if (!id.HasValue)
            {
                return(RedirectToAction(nameof(TicketController.Index)));
            }
            var userId = User.Identity.GetUserId();

            var ticket = Db.Tickets.FirstOrDefault(p => p.Id == id);

            if (ticket == null)
            {
                return(RedirectToAction(nameof(TicketController.Index)));
            }
            var model = new CreateTicketsViewModel();

            model.Title            = ticket.Title;
            model.Description      = ticket.Description;
            model.TicketPriorites  = getSelectList.OfTicketPriority();
            model.TicketTypes      = getSelectList.OfTicketType();
            model.TicketStatuses   = getSelectList.OfTicketStatus();
            model.TicketStatusId   = ticket.TicketStatusId;
            model.TicketTypeId     = ticket.TicketTypeId;
            model.TicketPriorityId = ticket.TicketPriorityId;


            return(View(model));
        }
예제 #4
0
        public ActionResult Edit(int?id, CreateTicketsViewModel form)
        {
            if (!id.HasValue)
            {
                return(RedirectToAction(nameof(TicketController.Index)));
            }

            if (!ModelState.IsValid)
            {
                return(View());
            }


            var model = Db.Tickets.FirstOrDefault(p => p.Id == id);

            var currentUserId = User.Identity.GetUserId();

            var log = new TrackChanges(Db, model, form);

            var mailHelper = new MailSender(userManager, model);

            //check if there is any change in our ticket
            //also check there has any developer assigned to this ticket
            //also check that if developer edit the ticket they will not get any notification.
            if (log.IsTicketEdited())
            {
                var allValues = log.ModifiedValues();

                foreach (var item in allValues)
                {
                    item.UserId = User.Identity.GetUserId();
                    Db.Histories.Add(item);
                }

                mailHelper.Send(currentUserId);

                Db.SaveChanges();
            }



            model.Title            = form.Title;
            model.Description      = form.Description;
            model.TicketPriorityId = form.TicketPriorityId;
            model.TicketTypeId     = form.TicketTypeId;
            model.TicketStatusId   = form.TicketStatusId;
            model.DateUpdated      = DateTime.Now;
            Db.SaveChanges();


            return(RedirectToAction(nameof(TicketController.Details), new { id = model.Id }));
        }
예제 #5
0
        public ActionResult Create()
        {
            var userId = User.Identity.GetUserId();

            var model = new CreateTicketsViewModel();

            model.TicketPriorites = getSelectList.OfTicketPriority();

            model.TicketTypes = getSelectList.OfTicketType();

            model.AssignedProject = getSelectList.OfUsersProject(userId);

            return(View(model));
        }
예제 #6
0
        public ActionResult CreateTickets(CreateTicketsViewModel inFlight)
        {
            string info;

            if (inFlight.Count > 0 && inFlight.Price > 0 && !string.IsNullOrEmpty(inFlight.ToClass.ToString()))
            {
                if (ticketBuisnessLogic.CreateTickets(inFlight))
                {
                    return(RedirectToAction("FindTickets", "Admin", new { id = inFlight.FlightId }));
                }
                else
                {
                    info = "Помилка";
                    return(RedirectToAction("InfoAndErrors", "Admin", new { info }));
                }
            }
            else
            {
                info = "Помилка";
                return(RedirectToAction("InfoAndErrors", "Admin", new { info }));
            }
        }
예제 #7
0
        public ActionResult Create(CreateTicketsViewModel form)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            var model = new Ticket();

            model.Title            = form.Title;
            model.Description      = form.Description;
            model.ProjectId        = form.ProjectId;
            model.TicketPriorityId = form.TicketPriorityId;
            model.TicketTypeId     = form.TicketTypeId;
            //set ticket to open
            model.TicketStatusId = 1;
            model.OwnerUserId    = User.Identity.GetUserId();

            Db.Tickets.Add(model);
            Db.SaveChanges();

            return(RedirectToAction(nameof(TicketController.Index)));
        }
예제 #8
0
 public TrackChanges(ApplicationDbContext context, Ticket ticket, CreateTicketsViewModel dataFromView)
 {
     Db       = context;
     Model    = ticket;
     FormData = dataFromView;
 }