public async Task <CommandResult <AddRecommendationViewModel> > ExecuteAsync(AddRecommendationViewModel vm) { var userId = _httpContextAccessor.HttpContext.User.Identity.Name; var userName = _userManager.FindByIdAsync(userId).Result.UserName; try { //Check Order Available var findAvailableOrder = await _recommendRepository.FindSingleAsync(x => x.Order == vm.Order && x.Type == TypeRecommendation.News); if (findAvailableOrder != null) { _recommendRepository.Remove(findAvailableOrder); } //Check News has been set var findIdAvaiable = await _recommendRepository.FindSingleAsync(x => x.IdType == vm.IdType.ToString() && x.Type == TypeRecommendation.Location); if (findIdAvaiable != null) { await Logging <AddRecommendNews> .WarningAsync(ActionCommand.COMMAND_ADD, userName, "This location has been order at position " + findIdAvaiable.Order); return(new CommandResult <AddRecommendationViewModel> { isValid = false, errorMessage = "This location has been order at position " + findIdAvaiable.Order }); } //Add new recommendation var addNewOrder = new Recommendation() { IdType = vm.IdType.ToString(), Order = vm.Order, Type = TypeRecommendation.Location }; await _recommendRepository.Add(addNewOrder); await _recommendRepository.SaveAsync(); await Logging <AddRecommendNews> .InformationAsync(ActionCommand.COMMAND_ADD, userName, JsonConvert.SerializeObject(vm)); return(new CommandResult <AddRecommendationViewModel> { isValid = true, myModel = vm }); } catch (Exception ex) { await Logging <AddRecommendNews> .ErrorAsync(ex, ActionCommand.COMMAND_ADD, userName, "Has error"); return(new CommandResult <AddRecommendationViewModel> { errorMessage = ex.Message.ToString(), isValid = false }); } }
public async Task <IActionResult> AddServiceRecommend(AddRecommendationViewModel vm) { var model = await _addRecommendService.ExecuteAsync(vm); return(new OkObjectResult(model)); }