예제 #1
0
        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
                });
            }
        }
예제 #2
0
        public async Task <IActionResult> AddServiceRecommend(AddRecommendationViewModel vm)
        {
            var model = await _addRecommendService.ExecuteAsync(vm);

            return(new OkObjectResult(model));
        }