public ManageModel(BasicDeskDbContext dbContext, UserManager <User> userManager) { this.ViewModel = new RequestManagingModel(); this.bindingModel = new RequestEditingBindingModel(); this.dbContext = dbContext; this.userManager = userManager; }
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; }
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(); }
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(); }