Exemple #1
0
        public async Task <IActionResult> EditTicket(Admin.ViewModels.Ticket.EditTicketBindingModel model)
        {
            if (ModelState.IsValid)
            {
                var ticket = await service.FindTicket(model.Id);

                if (ticket.Priority == 0)
                {
                    model.Priority = 0;
                }
                var AgentId = await service.FindUserIdByName(model.AgentId);

                model.AgentId = AgentId.Id;
                var AuthorId = await service.FindUserIdByName(model.AuthorId);

                model.AuthorId = AuthorId.Id;
                await service.EditTicket(model);

                return(RedirectToAction("DisplayAllSendTickets"));
            }
            IEnumerable <Models.User>    userUsernameToSelect = service.UserUsernameToSelect();
            IEnumerable <Models.Project> projectIdToSelect    = service.ProjectIdToSelect();

            //here i will get username as a value and in the post action i will find by the username the id of the user
            ViewBag.AgentUsername = new SelectList(userUsernameToSelect, "UserName", "UserName", model.AgentId);
            ViewBag.ProjectId     = new SelectList(projectIdToSelect, "Id", "Id", model.ProjectId);

            return(View());
        }
Exemple #2
0
        public async Task EditTicket(Admin.ViewModels.Ticket.EditTicketBindingModel model)
        {
            var ticket = await FindTicket(model.Id);

            if (ticket == null)
            {
                throw new NullReferenceException($"No Ticket with id:{model.Id} exist.");
            }
            ticket.AgentId    = model.AgentId;
            ticket.IsComplete = model.IsComplete;
            ticket.IsDeleted  = model.IsDeleted;
            ticket.Priority   = model.Priority;
            ticket.Descripton = model.Description;
            ticket.ProjectId  = model.ProjectId;

            if (model.WorkingTime != null)
            {
                var wt = new WorkingTime();
                wt.WorkingSpan = model.WorkingTime;
                wt.TicketId    = model.Id;

                await dbContext.WorkingTimes.AddAsync(wt);

                await dbContext.SaveChangesAsync();
            }

            if (model.FilesToUpload != null)
            {
                foreach (var file in model.FilesToUpload)
                {
                    if (file != null)
                    {
                        if (file.Length > 0)
                        {
                            var fileName      = Path.GetFileName(file.FileName);
                            var fileExtension = Path.GetExtension(fileName);
                            var newFileName   = String.Concat(Convert.ToString(Guid.NewGuid()), fileExtension);

                            var fileToUpload = new Models.File
                            {
                                TicketId = model.Id
                            };
                            using (var target = new MemoryStream())
                            {
                                file.CopyTo(target);
                                fileToUpload.FileUpload = target.ToArray();
                            }

                            await dbContext.Files.AddAsync(fileToUpload);

                            await dbContext.SaveChangesAsync();
                        }
                    }
                }
            }

            dbContext.Tickets.Update(ticket);
            await dbContext.SaveChangesAsync();
        }
Exemple #3
0
        public async Task <IActionResult> EditTicket(int id)
        {
            var ticket = await service.FindTicket(id);

            var ticketToEdit = new Admin.ViewModels.Ticket.EditTicketBindingModel();

            if (ticket == null)
            {
                return(NotFound());
            }
            //---the only fields that can be edited are AgentId,Priority,TicketId,IsAnswered,IsComplete,IsDeleted,ProjectId,UploadFiles,Descripton
            ticketToEdit.Id          = ticket.Id;
            ticketToEdit.Title       = ticket.Title;
            ticketToEdit.Description = ticket.Descripton;
            ticketToEdit.ProjectId   = ticket.ProjectId;
            var authorUsername = await service.FindUserNameById(ticket.AuthorId);

            ticketToEdit.AuthorId = authorUsername.UserName;
            ticketToEdit.AgentId  = ticket.AgentId;
            if (ticketToEdit.Priority == 0)
            {
                ticketToEdit.Priority = 0;
            }
            else
            {
                ticketToEdit.Priority = ticket.Priority;
            }
            ticketToEdit.SendOn = ticket.SendOn;
            //ticketToEdit.TicketId = ticket.TicketId;
            //ticketToEdit.IsAnswered = ticket.IsAnswered;
            ticketToEdit.IsComplete = ticket.IsComplete;
            ticketToEdit.IsDeleted  = ticket.IsDeleted;

            IEnumerable <Models.User>    userUsernameToSelect = service.UserUsernameToSelect();
            IEnumerable <Models.Project> projectIdToSelect    = service.ProjectIdToSelect();

            //here i will get username as a value and in the post action i will find by the username the id of the user
            //----
            ViewBag.AgentUsername = new SelectList(userUsernameToSelect, "UserName", "UserName", ticketToEdit.AgentId);
            ViewBag.ProjectId     = new SelectList(projectIdToSelect, "Id", "Id", ticketToEdit.ProjectId);

            return(View(ticketToEdit));
        }