public ManageModel(BasicDeskDbContext dbContext, UserManager <User> userManager)
 {
     this.ViewModel    = new RequestManagingModel();
     this.bindingModel = new RequestEditingBindingModel();
     this.dbContext    = dbContext;
     this.userManager  = userManager;
 }
Пример #2
0
 public ManageModel(BasicDeskDbContext dbContext, UserManager <User> userManager, IRequestService requestService, ICategoriesService categoriesService)
 {
     this.ViewModel         = new RequestManagingModel();
     this.bindingModel      = new RequestEditingBindingModel();
     this.userManager       = userManager;
     this.requestService    = requestService;
     this.categoriesService = categoriesService;
 }
Пример #3
0
        public async Task UpdateRequestAsync(RequestEditingBindingModel model)
        {
            Request request = await this.repository
                              .All()
                              .FirstOrDefaultAsync(r => r.Id == model.Id);

            if (request == null)
            {
                throw new ArgumentException("Invalid request!");
            }

            if (model.StatusId != null && model.StatusId != request.StatusId)
            {
                RequestStatus status = await this.statusService.GetAll()
                                       .FirstOrDefaultAsync(s => s.Id == model.StatusId);

                if (status == null)
                {
                    throw new ArgumentException("Invalid status!");
                }

                request.StatusId = status.Id;

                if (status.Id == WebConstants.ClosedStatusId || status.Id == WebConstants.RejectedStatusId)
                {
                    request.EndTime = DateTime.UtcNow;
                }
            }

            if (model.CategoryId != null && model.CategoryId != request.CategoryId)
            {
                RequestCategory category = await this.categoriesService.ById(Convert.ToInt32(model.CategoryId)).FirstOrDefaultAsync();

                if (category == null)
                {
                    throw new ArgumentException("Invalid category!");
                }

                request.CategoryId = category.Id;
            }

            //if (model.AssignToId != null && model.AssignToId != request.AssignedToId)
            //{
            //    User technician = this.userService.GetById(model.AssignToId);
            //    if (technician == null || technician.RoleId == WebConstants.UserRoleId)
            //    {
            //        throw new ArgumentException("Invalid technician!");
            //    }

            //     request.AssignedToId = technician.Id;
            //}
            if (model.Resolution != request.Resolution)
            {
                request.Resolution = model.Resolution;
            }
            await this.SaveChangesAsync();
        }
Пример #4
0
        public async Task UpdateRequestAsync(int id, RequestEditingBindingModel model)
        {
            Request request = await this.repository.All().FirstOrDefaultAsync(r => r.Id == id);

            if (model.StatusId != null && model.StatusId != request.StatusId)
            {
                RequestStatus status = await this.GetAllStatuses().FirstOrDefaultAsync(s => s.Id == model.StatusId);

                if (status != null)
                {
                    request.StatusId = status.Id;
                }
                if (status.Name.ToLower() == "closed" || status.Name.ToLower() == "rejected")
                {
                    request.EndTime = DateTime.UtcNow;
                }
            }

            if (model.CategoryId != null && model.CategoryId != request.CategoryId)
            {
                RequestCategory category = await this.categoriesService.ById(Convert.ToInt32(model.CategoryId)).FirstAsync();

                if (category != null)
                {
                    request.CategoryId = category.Id;
                }
            }

            if (model.AssignToId != null && model.AssignToId != request.AssignedToId)
            {
                User technician = await this.userManager.FindByIdAsync(model.AssignToId);

                if (technician != null)
                {
                    request.AssignedToId = technician.Id;
                }
            }
            await this.SaveChangesAsync();
        }