Esempio n. 1
0
        public static void Map()
        {
            Mapper.CreateMap <IMM.RegisterViewModel, Entities.Account>();

            Mapper.CreateMap <IMM.LoginViewModel, Entities.Account>().ForMember(des => des.Email,
                                                                                m => m.MapFrom(sour => sour.UserName)).ForMember(des => des.Email,
                                                                                                                                 m => m.MapFrom(sour => sour.UserName));

            Mapper.CreateMap <IMM.CollectTicketDetailViewModal, Entities.Ticket>().ForMember(
                des => des.TicketType, m => m.MapFrom(sour => sour.TicketType)).ForMember(
                des => des.UserCommunicationEmail, m => m.MapFrom(sour => sour.UserEmail)).ForMember(
                des => des.Domain, m => m.MapFrom(sour => sour.Domain)).ForMember(
                des => des.Subject, m => m.MapFrom(sour => sour.Subject)).ForMember(
                des => des.Subject, m => m.MapFrom(sour => sour.Subject)).AfterMap((sour, dest) =>
            {
                var tickConv        = new Entities.TicketConversation();
                tickConv.Attachment = sour.Attachment;
                tickConv.Message    = sour.Message;
                dest.TicketConversations.Add(tickConv);
            });

            Mapper.CreateMap <Entities.Ticket, IMM.Ticket>().ForMember(des => des.TicketNumber,
                                                                       m => m.MapFrom(sour => "#NMU-" + sour.TicketNumber.ToString().PadLeft(5, '0') + "-XOJ")).ForMember(
                des => des.Type, m => m.MapFrom(sour => sour.TicketType == "NI" ? "Need Information" : "Error On WebSite"));

            Mapper.CreateMap <Entities.Ticket, IMM.ViewTicketViewModel>();

            Mapper.CreateMap <IMM.ViewTicketViewModel, Entities.Ticket>();

            Mapper.CreateMap <Entities.Ticket, IMM.SubmitConfirmationViewModal>().ForMember(
                des => des.UserEmail, m => m.MapFrom(sour => sour.UserCommunicationEmail)).AfterMap((sour, dest) =>
            {
                if (sour.User != null)
                {
                    // dest.UserEmail = sour.User.Email;
                    dest.UserName = sour.User.UserName;
                }
            });
        }
        public ActionResult UpdateTicket(ViewModels.ViewTicketViewModel model)
        {
            if (ModelState.IsValid)
            {
                var ticket = ticketService.GetTicket(model.ID);


                if (!string.IsNullOrEmpty(model.Message))
                {
                    Entities.TicketConversation conver = new Entities.TicketConversation();
                    conver.Message           = model.Message;
                    conver.TicketID          = ticket.ID;
                    conver.CreateDate        = DateTime.Now;
                    conver.LastUpdateDate    = DateTime.Now;
                    conver.ID                = Guid.NewGuid();
                    conver.LastUpdatedUserID = LoggedInUserAccount.ID;
                    conver.Staff             = LoggedInUserAccount.Staff;

                    if (model.AttachedFile != null && !string.IsNullOrEmpty(model.AttachedFile.FileName))
                    {
                        conver.Attachment = ticketService.SaveUploadedFile(GetPhysicalUploadFolder(), model.AttachedFile);
                    }

                    ticket.TicketConversations.Add(conver);
                }
                ticket.Priority = model.Priority;
                ticket.Status   = model.Status;

                ticketService.UpdateTicket(ticket);
                ticket.LastUpdatedUserID = LoggedInUserAccount.ID;

                return(RedirectToAction("ViewTicket", new { ticketId = ticket.ID }));
            }

            return(View());
        }