public async Task <IActionResult> AddUpdateRating(ServiceRatingViewModel vm) { var model = await _addUpdateRatingServiceCommand.ExecuteAsync(vm); return(new OkObjectResult(model)); }
public async Task <CommandResult <ServiceRatingViewModel> > ExecuteAsync(ServiceRatingViewModel serviceRatingViewModel) { var getUserId = _httpContextAccessor.HttpContext.User.Identity.Name; var userName = _userManager.FindByIdAsync(getUserId).Result.UserName; try { //Check provider has available var getService = await _serviceRepository.FindByIdAsync(Guid.Parse(serviceRatingViewModel.ServiceId)); if (getService == null) { await Logging <AddUpdateRatingServiceCommand> .WarningAsync(ActionCommand.COMMAND_ADD, userName, ErrorMessageConstant.ERROR_CANNOT_FIND_ID); return(new CommandResult <ServiceRatingViewModel> { isValid = false, errorMessage = ErrorMessageConstant.ERROR_CANNOT_FIND_ID }); } var getServiceRating = await _serviceRatingRepository.FindSingleAsync(x => x.ServiceId == Guid.Parse(serviceRatingViewModel.ServiceId) && x.UserId == Guid.Parse(serviceRatingViewModel.UserId)); if (getServiceRating != null) { var getUserService = _getOwnServiceInformationQuery.ExecuteAsync(serviceRatingViewModel.ServiceId); getServiceRating.NumberOfRating = serviceRatingViewModel.NumberOfRating; getServiceRating.DateModified = DateTime.Now; _serviceRatingRepository.Update(getServiceRating); await _serviceRatingRepository.SaveAsync(); await LoggingUser <AddUpdateRatingServiceCommand> . InformationAsync(getUserId, userName, userName + "rated" + getService.ServiceName + " with" + getServiceRating.NumberOfRating); await Logging <AddUpdateRatingServiceCommand> .InformationAsync(ActionCommand.COMMAND_ADD, userName, JsonConvert.SerializeObject(serviceRatingViewModel)); return(new CommandResult <ServiceRatingViewModel> { isValid = true, myModel = serviceRatingViewModel }); } var query = new ServiceRating { NumberOfRating = serviceRatingViewModel.NumberOfRating, DateCreated = DateTime.Now, ServiceId = Guid.Parse(serviceRatingViewModel.ServiceId), UserId = Guid.Parse(getUserId) }; await _serviceRatingRepository.Add(query); await _serviceRatingRepository.SaveAsync(); await LoggingUser <AddUpdateRatingServiceCommand> . InformationAsync(getUserId, userName, userName + "rated" + getService.ServiceName + " with" + query.NumberOfRating); await Logging <AddUpdateRatingServiceCommand> .InformationAsync(ActionCommand.COMMAND_ADD, userName, JsonConvert.SerializeObject(serviceRatingViewModel)); return(new CommandResult <ServiceRatingViewModel> { isValid = true, myModel = serviceRatingViewModel }); } catch (Exception ex) { await Logging <AddUpdateRatingServiceCommand> . ErrorAsync(ex, ActionCommand.COMMAND_ADD, userName, "Has Error"); return(new CommandResult <ServiceRatingViewModel> { isValid = false, errorMessage = ex.InnerException.Message.ToString() }); } }