private Complain MapComplain(ComplainRequestViewModel complain) { return(new Complain { Text = complain.ComplainText, DealId = complain.DealId, DateOfCreating = DateTime.Today.Date }); }
public async Task <IHttpActionResult> Create(ComplainRequestViewModel complainModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } string username = HttpContext.Current.User.Identity.Name; IdentityResult result = await _repo.CreateComplain(username, complainModel); IHttpActionResult errorResult = GetErrorResult(result); return(errorResult == null?Ok() : errorResult); }
public async Task <IdentityResult> CreateComplain(string username, ComplainRequestViewModel complainModel) { var deal = await _context.Deals.FirstOrDefaultAsync(d => d.Id == complainModel.DealId); if (deal == null) { return(IdentityResult.Failed($"Deal {complainModel.DealId} not found.")); } if (deal.UserCreditor == null || deal.UserCreditor.UserName != username) { return(IdentityResult.Failed($"User '{username}' can not create complain for this deal.")); } if (deal.IsClosed) { return(IdentityResult.Failed($"Can not create complain for the closed deal.")); } _context.Complains.Add(MapComplain(complainModel)); try { await _context.SaveChangesAsync(); return(IdentityResult.Success); } catch (DbEntityValidationException ex) { _logger.Error("ComplainRepository.CreateComplain", ex); return(IdentityResult.Failed(ex.GetValidationErrors())); } catch (Exception ex) { _logger.Error("ComplainRepository.CreateComplain", ex); return(null); } }