Example #1
0
        public async Task <IActionResult> AddUpdateRating(ServiceRatingViewModel vm)
        {
            var model = await _addUpdateRatingServiceCommand.ExecuteAsync(vm);

            return(new OkObjectResult(model));
        }
Example #2
0
        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()
                });
            }
        }