public HttpResponse Add(AddIssueFormModel model) { if (!this.UserCanAccessCar(model.CarId)) { return(Unauthorized()); } var modelErrors = this.validator.ValidateIssue(model); if (modelErrors.Any()) { return(Error(modelErrors)); } var issue = new Issue { Description = model.Description, CarId = model.CarId }; data.Issues.Add(issue); data.SaveChanges(); return(Redirect($"/Issues/CarIssues?carId={model.CarId}")); }
public HttpResponse Add(AddIssueFormModel model, string carId) { var issueToAdd = new Issue() { Description = model.Description, CarId = carId }; this.data.Issues.Add(issueToAdd); this.data.SaveChanges(); return(Redirect($"/Issues/CarIssues?carId={issueToAdd.CarId}")); }
public ICollection <string> ValidateIssue(AddIssueFormModel issue) { var errors = new List <string>(); if (issue.CarId == null) { errors.Add($"Car ID cannot be empty."); } if (issue.Description.Length < IssueMinDescription) { errors.Add($"Description '{issue.Description}' is not valid. It must have more than {IssueMinDescription} characters."); } return(errors); }
public HttpResponse Add(AddIssueFormModel model) { if (!this.UserCanAccessCar(model.CarId)) { return(Unauthorized()); } var modelErrors = this.validator.ValidateIssue(model); if (modelErrors.Any()) { return(Error(modelErrors)); } this.issueService.Add(model.Description, model.CarId); return(Redirect($"/Issues/CarIssues?carId={model.CarId}")); }
public async Task <IActionResult> AddIssue([FromBody] AddIssueFormModel issueForm) { var resp = await _issueService.AddIssueAsync(HttpContext.GetUser(), issueForm); return(Ok(GetRequestResult(resp))); }
public async Task <long> AddIssueAsync(User user, AddIssueFormModel issueForm) { try { var issue = new Issue(); var userInfo = await _context.Users.FirstOrDefaultAsync(c => c.Id == issueForm.UserId); if (userInfo == null) { throw new ExperienceManagementGlobalException(UsersServiceErrors.UserNotFoundError); } FileAddress fileAddress; if (issueForm.ImageId != null) { fileAddress = await _context.FileAddresses.FindAsync(issueForm.ImageId); if (fileAddress == null) { throw new ExperienceManagementGlobalException(IssueServiceErrors.NotExistFileAddressError); } try { if (!File.Exists(fileAddress.FilePath)) { throw new ExperienceManagementGlobalException(IssueServiceErrors.FileNotFoundError); } Image image = Image.FromFile(fileAddress.FilePath); Image thumb = image.GetThumbnailImage(120, 120, () => false, IntPtr.Zero); var newPath = Path.ChangeExtension(fileAddress.FilePath, "thumb"); thumb.Save(newPath); fileAddress.FilePath = newPath; fileAddress.FileType = "thumb"; _context.FileAddresses.Update(fileAddress); issue.FileId = fileAddress.FileId; } catch (Exception ex) { throw new ExperienceManagementGlobalException(IssueServiceErrors.ChangeToThumbnailError, ex); } } //var IsExistEquipment = _context.Equipments.All(c => issueForm.EquipmentIds.Contains(c.Id)); //if (!IsExistEquipment) //{ // throw new ExperienceManagementGlobalException(IssueServiceErrors.NotExistEquipmentsListError); //} issueForm.EquipmentIds.ForEach(async resp => { var equipmentIssueSubscription = new EquipmentIssueSubscription(); equipmentIssueSubscription.Issue = issue; equipmentIssueSubscription.EquipmentId = resp; await _context.EquipmentIssueSubscriptions.AddAsync(equipmentIssueSubscription); }); issue.IsActive = false; issue.IssueType = (IssueType)issueForm.IssueType; issue.Title = issueForm.Title; issue.Description = issue.Description; issue.CreationDate = DateTime.Now; issue.LastUpdateDate = DateTime.Now; issue.UserId = user.Id; await _context.Issues.AddAsync(issue); await _context.SaveChangesAsync(); return(issue.Id); } catch (Exception ex) { throw new ExperienceManagementGlobalException(IssueServiceErrors.AddIssueError, ex); } }