Пример #1
0
        public async Task <CommandResult <CommentViewModel> > ExecuteAsync(CommentViewModel commentserviceVm)
        {
            var userId   = _httpContextAccessor.HttpContext.User.Identity.Name;
            var userName = await _userManager.FindByIdAsync(userId);

            try
            {
                var CommentUpdate = await _commentRepository.FindByIdAsync(commentserviceVm.Id);

                if (CommentUpdate != null)
                {
                    CommentUpdate.ContentOfRating = commentserviceVm.ContentOfRating;
                    CommentUpdate.UserId          = Guid.Parse(commentserviceVm.UserId);
                    CommentUpdate.ServiceId       = Guid.Parse(commentserviceVm.ServiceId);
                    var getUserService = await _getOwnServiceInformationQuery.ExecuteAsync(CommentUpdate.ServiceId.ToString());

                    _commentRepository.Update(CommentUpdate);
                    await _commentRepository.SaveAsync();

                    await LoggingUser <UpdateCommentServiceAsyncCommand> .InformationAsync(getUserService, userName.UserName, CommentUpdate.ContentOfRating);

                    await Logging <UpdateCommentServiceAsyncCommand> .InformationAsync(ActionCommand.COMMAND_UPDATE, userName.UserName, userName.UserName + " updated " + CommentUpdate.ContentOfRating);

                    return(new CommandResult <CommentViewModel>
                    {
                        isValid = true,
                        myModel = new CommentViewModel
                        {
                            Id = CommentUpdate.Id,
                            UserId = CommentUpdate.UserId.ToString(),
                            ServiceId = CommentUpdate.ServiceId.ToString(),
                            ContentOfRating = CommentUpdate.ContentOfRating
                        }
                    });
                }
                else
                {
                    await Logging <UpdateCommentServiceAsyncCommand> .ErrorAsync(ActionCommand.COMMAND_UPDATE, userName.UserName, ErrorMessageConstant.ERROR_CANNOT_FIND_ID);

                    return(new CommandResult <CommentViewModel>
                    {
                        isValid = false,
                        errorMessage = ErrorMessageConstant.ERROR_CANNOT_FIND_ID
                    });
                }
            }
            catch (System.Exception ex)
            {
                await Logging <UpdateCommentServiceAsyncCommand> .ErrorAsync(ex, ActionCommand.COMMAND_UPDATE, userName.UserName, "Has error");

                return(new CommandResult <CommentViewModel>
                {
                    isValid = false,
                    errorMessage = ex.InnerException.ToString()
                });
            }
        }
Пример #2
0
        public async Task <CommandResult <CommentViewModel> > ExecuteAsync(int id)
        {
            var userId   = _httpContextAccessor.HttpContext.User.Identity.Name;
            var userName = await _userManager.FindByIdAsync(userId);

            try
            {
                var commentDel = await _commentRepository.FindByIdAsync(id);

                if (commentDel != null)
                {
                    var getUserService = await _getOwnServiceInformationQuery.ExecuteAsync(commentDel.ServiceId.ToString());

                    _commentRepository.Remove(commentDel);
                    await _commentRepository.SaveAsync();

                    await LoggingUser <DeleteCommentServiceAsyncCommand> .InformationAsync(getUserService, userName.UserName, commentDel.ContentOfRating);

                    await Logging <DeleteCommentServiceAsyncCommand> .InformationAsync(ActionCommand.COMMAND_DELETE, userName.UserName, userName.UserName + " deleted " + commentDel.ContentOfRating);

                    return(new CommandResult <CommentViewModel>
                    {
                        isValid = true,
                        myModel = new CommentViewModel
                        {
                            Id = commentDel.Id,
                        }
                    });
                }
                else
                {
                    await Logging <DeleteCommentServiceAsyncCommand> .ErrorAsync(ActionCommand.COMMAND_DELETE, userName.UserName, ErrorMessageConstant.ERROR_CANNOT_FIND_ID);

                    return(new CommandResult <CommentViewModel>
                    {
                        isValid = false,
                        errorMessage = ErrorMessageConstant.ERROR_CANNOT_FIND_ID
                    });
                }
            }
            catch (System.Exception ex)
            {
                await Logging <DeleteCommentServiceAsyncCommand> .ErrorAsync(ex, ActionCommand.COMMAND_DELETE, userName.UserName, "Has error");

                return(new CommandResult <CommentViewModel>
                {
                    isValid = true,
                    errorMessage = ex.InnerException.ToString()
                });
            }
        }
        public async Task <CommandResult <CommentViewModel> > ExecuteAsync(CommentViewModel addComment)
        {
            var userId   = _httpContextAccessor.HttpContext.User.Identity.Name;
            var userName = await _userManager.FindByIdAsync(userId);

            try
            {
                var comment = new ServiceComment
                {
                    ContentOfRating = addComment.ContentOfRating,
                    UserId          = Guid.Parse(addComment.UserId),
                    ServiceId       = Guid.Parse(addComment.ServiceId),
                    ParentId        = addComment.ParentId
                };

                await _commentRepository.Add(comment);

                await _commentRepository.SaveAsync();

                var getOwnerService = await _getOwnServiceInformationQuery.ExecuteAsync(addComment.ServiceId);

                await LoggingUser <AddCommentServiceAsyncCommand> .
                InformationAsync(getOwnerService, userName.UserName, addComment.ContentOfRating);

                await Logging <AddCommentServiceAsyncCommand> .InformationAsync(ActionCommand.COMMAND_ADD, userName.UserName, JsonConvert.SerializeObject(addComment));

                return(new CommandResult <CommentViewModel>
                {
                    isValid = true,
                    myModel = new CommentViewModel
                    {
                        ContentOfRating = comment.ContentOfRating,
                        Id = comment.Id,
                        ParentId = comment.ParentId,
                        ServiceId = comment.ServiceId.ToString(),
                        UserId = comment.UserId.ToString()
                    }
                });
            }
            catch (Exception ex)
            {
                await Logging <AddCommentServiceAsyncCommand> .ErrorAsync(ex, ActionCommand.COMMAND_ADD, userName.UserName, "Has error");

                return(new CommandResult <CommentViewModel>
                {
                    isValid = false,
                    errorMessage = ex.InnerException.Message.ToString()
                });
            }
        }
Пример #4
0
        public override async Task <UserLog> GetLogsForUser(LoggingUser request, ServerCallContext context)
        {
            var res = await _loggingService.FindUserLog(request.SteamId);

            return(new UserLog
            {
                SteamId = res.SteamId,
                Logs =
                {
                    res.Logs.Select(log => new RpcCommunication.Log
                    {
                        Action = log.Action,
                        Time = log.Time.ToBinary().ToString(),
                        Value = log.Value,
                    })
                }
            });
        }
Пример #5
0
        public async Task <CommandResult <NewsProviderViewModel> > ExecuteAsync(int id, string reason)
        {
            var userId   = _httpContextAccessor.HttpContext.User.Identity.Name;
            var userName = _userRepository.FindByIdAsync(userId).Result.UserName;

            try
            {
                if (await _checkUserIsAdminQuery.ExecuteAsync(userId) || await _getPermissionActionQuery.ExecuteAsync(userId, ConstantFunctions.NEWS, ActionSetting.CanUpdate))
                {
                    var mappingProvider = await _newProviderRepository.FindByIdAsync(id);

                    if (mappingProvider == null)
                    {
                        return(new CommandResult <NewsProviderViewModel>
                        {
                            isValid = false,
                            errorMessage = "Cannot find your new"
                        });
                    }
                    var map = MappingNewProvider(mappingProvider);
                    _newProviderRepository.Update(map);
                    await _newProviderRepository.SaveAsync();

                    //Send mail service
                    var getProvider = await _providerRepository.FindSingleAsync(x => x.Id == mappingProvider.ProviderId);

                    var getEmail = await _userRepository.FindByIdAsync(getProvider.UserId.ToString());

                    //Set content for email
                    var getAllEmail = await _getAllEmailServiceQuery.ExecuteAsync();

                    var getFirstEmail = getAllEmail.Where(x => x.Name == EmailName.Reject_News).FirstOrDefault();
                    getFirstEmail.Message = getFirstEmail.Message.Replace(EmailKey.UserNameKey, getEmail.UserName)
                                            .Replace(EmailKey.NewNameKey, mappingProvider.Title)
                                            .Replace(EmailKey.ReasonKey, reason);

                    ContentEmail(_configEmail.Value.SendGridKey, getFirstEmail.Subject,
                                 getFirstEmail.Message, getEmail.Email).Wait();
                    //Write Log
                    await LoggingUser <RejectNewsProviderServiceCommand> .
                    InformationAsync(getProvider.UserId.ToString(), userName, userName + "Tin tức:" + map.Title + "của bạn đã bị từ chối. Xin vui lòng kiểm tra lại email");

                    await Logging <RejectNewsProviderServiceCommand> .
                    InformationAsync(ActionCommand.COMMAND_REJECT, userName, JsonConvert.SerializeObject(map.Title + "has been rejecte.Please check your email"));

                    return(new CommandResult <NewsProviderViewModel>
                    {
                        isValid = true,
                        errorMessage = "You have been rejected. Please check your email"
                    });
                }
                else
                {
                    await Logging <RejectNewsProviderServiceCommand> .
                    WarningAsync(ActionCommand.COMMAND_REJECT, userName, ErrorMessageConstant.ERROR_UPDATE_PERMISSION);

                    return(new CommandResult <NewsProviderViewModel>
                    {
                        isValid = false,
                        errorMessage = ErrorMessageConstant.ERROR_UPDATE_PERMISSION
                    });
                }
            }
            catch (Exception ex)
            {
                await Logging <RejectNewsProviderServiceCommand> .
                ErrorAsync(ex, ActionCommand.COMMAND_REJECT, userName, "Has error");

                return(new CommandResult <NewsProviderViewModel>
                {
                    isValid = false,
                    errorMessage = ex.InnerException.ToString()
                });
            }
        }
        public async Task <CommandResult <ProviderServiceViewModel> > ExecuteAsync(string userProvider, string providerId)
        {
            var userId   = _httpContextAccessor.HttpContext.User.Identity.Name;
            var userName = _userRepository.FindByIdAsync(userId).Result.UserName;

            try
            {
                if (await _checkUserIsAdminQuery.ExecuteAsync(userId) || await _getPermissionActionQuery.ExecuteAsync(userId, ConstantFunctions.PROVIDER, ActionSetting.CanUpdate))
                {
                    var getUserService = await _getPostUserServiceByUserIdQuery.ExecuteAsync(userProvider);

                    if (getUserService != null)
                    {
                        await _deleteServiceFromUserCommand.ExecuteAsync(getUserService.Id.ToString());
                    }

                    var mappingProvider = await _providerRepository.FindByIdAsync(Guid.Parse(providerId));

                    //Write Log
                    await Logging <ApproveProviderServiceCommand> .
                    WarningAsync(ActionCommand.COMMAND_APPROVE, userName, ErrorMessageConstant.ERROR_CANNOT_FIND_ID);

                    if (mappingProvider == null)
                    {
                        return(new CommandResult <ProviderServiceViewModel>
                        {
                            isValid = false,
                            errorMessage = ErrorMessageConstant.ERROR_CANNOT_FIND_ID
                        });
                    }
                    //Check user is Provider
                    var getAllUserProvider = await _providerRepository.FindAllAsync(x => x.UserId == mappingProvider.UserId);

                    if (getAllUserProvider.Count() > 1)
                    {
                        return(new CommandResult <ProviderServiceViewModel>
                        {
                            isValid = false,
                            errorMessage = "This user cannot register over 1 provider"
                        });
                    }
                    mappingProvider.Status = Status.WaitingApprove;
                    _providerRepository.Update(mappingProvider);
                    var findUserId = await _userRepository.FindByIdAsync(mappingProvider.UserId.ToString());

                    var getAllRoleUser = await _userRepository.GetRolesAsync(findUserId);

                    var countRole = 0;
                    foreach (var item in getAllRoleUser)
                    {
                        if (item == ConstantRoles.Provider)
                        {
                            countRole++;
                        }
                    }
                    if (countRole == 0)
                    {
                        await _userRepository.AddToRoleAsync(findUserId, ConstantRoles.Provider);
                    }
                    await _providerRepository.SaveAsync();

                    var userMail = await _userRepository.FindByIdAsync(mappingProvider.UserId.ToString());

                    //Set content for email
                    var getEmailContent = await _getAllEmailServiceQuery.ExecuteAsync();

                    var getFirstEmail = getEmailContent.Where(x => x.Name == EmailName.Approve_Provider).FirstOrDefault();

                    var generateCode = _configuration.GetSection("Host").GetSection("LinkConfirmProvider").Value +
                                       mappingProvider.OTPConfirm + '_' + mappingProvider.Id;
                    getFirstEmail.Message = getFirstEmail.Message.
                                            Replace(EmailKey.UserNameKey, userMail.Email).
                                            Replace(EmailKey.ConfirmLink, generateCode);

                    ContentEmail(_config.Value.SendGridKey, getFirstEmail.Subject,
                                 getFirstEmail.Message, userMail.Email).Wait();

                    //Write log
                    await LoggingUser <ApproveProviderServiceCommand> .
                    InformationAsync(mappingProvider.UserId.ToString(), userName, userName + "Nhà cung cấp:" + mappingProvider.ProviderName + "đã được chấp thuận. Check mail để xác nhận dịch vụ");

                    await Logging <ApproveProviderServiceCommand> .
                    InformationAsync(ActionCommand.COMMAND_APPROVE, userName, mappingProvider.ProviderName + "has been approved");

                    return(new CommandResult <ProviderServiceViewModel>
                    {
                        isValid = true,
                    });
                }
                else
                {
                    await Logging <ApproveProviderServiceCommand> .
                    WarningAsync(ActionCommand.COMMAND_APPROVE, userName, ErrorMessageConstant.ERROR_UPDATE_PERMISSION);

                    return(new CommandResult <ProviderServiceViewModel>
                    {
                        isValid = false,
                        errorMessage = ErrorMessageConstant.ERROR_UPDATE_PERMISSION
                    });
                }
            }
            catch (Exception ex)
            {
                await Logging <ApproveProviderServiceCommand> .
                ErrorAsync(ex, ActionCommand.COMMAND_APPROVE, userName, "Has error");

                return(new CommandResult <ProviderServiceViewModel>
                {
                    isValid = false,
                    errorMessage = ex.InnerException.ToString()
                });
            }
        }
Пример #7
0
        public async Task <CommandResult <PostServiceViewModel> > ExecuteAsync(string idService, string reason)
        {
            var userId   = _httpContextAccessor.HttpContext.User.Identity.Name;
            var userName = _userRepository.FindByIdAsync(userId).Result.UserName;

            try
            {
                //Check permission approve
                if (await _getPermissionActionQuery.ExecuteAsync(userId, ConstantFunctions.SERVICE, ActionSetting.CanUpdate) ||
                    await _checkUserIsAdminQuery.ExecuteAsync(userId))
                {
                    //Check have current post
                    var getCurrentPost = await _postServiceRepository.FindByIdAsync(Guid.Parse(idService));

                    if (getCurrentPost != null)
                    {
                        var getUserId = await _getOwnServiceInformationQuery.ExecuteAsync(idService);

                        getCurrentPost.Status = Status.Active;
                        _postServiceRepository.Update(getCurrentPost);
                        await _postServiceRepository.SaveAsync();

                        var findEmailUser = await GetEmailUserAsync(getCurrentPost);

                        if (findEmailUser != ErrorMessageConstant.ERROR_CANNOT_FIND_ID)
                        {
                            //Set content for email
                            //Get all email
                            var getAllEmail = await _getAllEmailServiceQuery.ExecuteAsync();

                            var getFirstEmail = getAllEmail.Where(x => x.Name == EmailName.Reject_Service).FirstOrDefault();

                            getFirstEmail.Message = getFirstEmail.Message.
                                                    Replace(EmailKey.ServiceNameKey, getCurrentPost.ServiceName)
                                                    .Replace(EmailKey.UserNameKey, findEmailUser)
                                                    .Replace(EmailKey.ReasonKey, reason);

                            ContentEmail(_configEmail.Value.SendGridKey, getFirstEmail.Subject,
                                         getFirstEmail.Message, findEmailUser).Wait();
                        }
                        else
                        {
                            await Logging <RejectPostServiceCommand> .
                            WarningAsync(ActionCommand.COMMAND_APPROVE, userName, "Cannot find email");

                            return(new CommandResult <PostServiceViewModel>
                            {
                                isValid = false,
                                errorMessage = "Cannot find email user"
                            });
                        }
                        //Write Log
                        await Logging <RejectPostServiceCommand> .
                        InformationAsync(ActionCommand.COMMAND_APPROVE, userName, getCurrentPost.ServiceName + "has been rejected");

                        await LoggingUser <RejectPostServiceCommand> .
                        InformationAsync(getUserId, userName, userName + "Dịch vụ " + getCurrentPost.ServiceName + "đã bị từ chối. Check mail để xác nhận");

                        return(new CommandResult <PostServiceViewModel>
                        {
                            isValid = true,
                        });
                    }
                    //Write log
                    await Logging <RejectPostServiceCommand> .
                    WarningAsync(ActionCommand.COMMAND_APPROVE, userName, ErrorMessageConstant.ERROR_CANNOT_FIND_ID);

                    return(new CommandResult <PostServiceViewModel>
                    {
                        isValid = false,
                        errorMessage = ErrorMessageConstant.ERROR_CANNOT_FIND_ID
                    });
                }
                else
                {
                    await Logging <RejectPostServiceCommand> .
                    WarningAsync(ActionCommand.COMMAND_APPROVE, userName, ErrorMessageConstant.ERROR_UPDATE_PERMISSION);

                    return(new CommandResult <PostServiceViewModel>
                    {
                        isValid = false,
                        errorMessage = ErrorMessageConstant.ERROR_UPDATE_PERMISSION
                    });
                }
            }
            catch (System.Exception ex)
            {
                await Logging <RejectPostServiceCommand> .
                ErrorAsync(ex, ActionCommand.COMMAND_APPROVE, userName, "Has error");

                return(new CommandResult <PostServiceViewModel>
                {
                    isValid = false,
                    errorMessage = ex.InnerException.ToString()
                });
            }
        }
Пример #8
0
        public async Task <CommandResult <ServiceFollowingViewModel> > ExecuteAsync(ServiceFollowingViewModel serviceFollowingViewModel)
        {
            var userId   = _httpContextAccessor.HttpContext.User.Identity.Name;
            var userName = await _userManager.FindByIdAsync(userId);

            try
            {
                var checkUserHasFollow = await _serviceFollowingRepository.FindSingleAsync(x =>
                                                                                           x.ServiceId == Guid.Parse(serviceFollowingViewModel.ServiceId) &&
                                                                                           x.UserId == Guid.Parse(serviceFollowingViewModel.UserId));

                var getOwnerService = await _getOwnServiceInformationQuery.ExecuteAsync(serviceFollowingViewModel.ServiceId);

                if (checkUserHasFollow != null)
                {
                    await Logging <FollowPostServiceCommand> .ErrorAsync(ActionCommand.COMMAND_ADD, userName.UserName, "You had follow this service");

                    return(new CommandResult <ServiceFollowingViewModel>
                    {
                        isValid = false,
                        errorMessage = "You had follow this service"
                    });
                }
                var postService = await _serviceRepository.FindByIdAsync(Guid.Parse(serviceFollowingViewModel.ServiceId));

                if (postService == null)
                {
                    await Logging <FollowPostServiceCommand> .ErrorAsync(ActionCommand.COMMAND_ADD, userName.UserName, ErrorMessageConstant.ERROR_CANNOT_FIND_ID);

                    return(new CommandResult <ServiceFollowingViewModel>
                    {
                        isValid = false,
                        errorMessage = ErrorMessageConstant.ERROR_CANNOT_FIND_ID
                    });
                }
                var data = MappingData(serviceFollowingViewModel);
                await _serviceFollowingRepository.Add(data);

                await _serviceFollowingRepository.SaveAsync();

                await LoggingUser <FollowPostServiceCommand> .
                InformationAsync(getOwnerService, userName.UserName, userName.UserName + " had follow" + postService.ServiceName);

                await Logging <FollowPostServiceCommand> .InformationAsync(ActionCommand.COMMAND_ADD, userName.UserName, JsonConvert.SerializeObject(serviceFollowingViewModel));

                return(new CommandResult <ServiceFollowingViewModel>
                {
                    isValid = true,
                    myModel = serviceFollowingViewModel
                });
            }
            catch (Exception ex)
            {
                await Logging <FollowPostServiceCommand> .ErrorAsync(ex, ActionCommand.COMMAND_ADD, userName.UserName, "Has error");

                return(new CommandResult <ServiceFollowingViewModel>
                {
                    isValid = false,
                    errorMessage = ex.InnerException.Message.ToString()
                });
            }
        }
        public async Task <CommandResult <FollowingProviderServiceViewModel> > ExecuteAsync(FollowingProviderServiceViewModel vm)
        {
            var userId   = _httpContextAccessor.HttpContext.User.Identity.Name;
            var userName = await _userManager.FindByIdAsync(userId);

            try
            {
                var checkUserHasFollowProvider = await _providerFollowingRepository.FindAllAsync(x =>
                                                                                                 x.ProviderId == Guid.Parse(vm.ProviderId) && x.UserId == Guid.Parse(vm.UserId));

                if (checkUserHasFollowProvider.Count() != 0)
                {
                    await Logging <FollowProviderServiceCommand> .
                    ErrorAsync(ActionCommand.COMMAND_ADD, userName.UserName, userName.UserName + "had follow provider");

                    return(new CommandResult <FollowingProviderServiceViewModel>
                    {
                        isValid = false,
                        errorMessage = "You had follow this provider"
                    });
                }
                var getProvider = await _providerRepository.FindByIdAsync(Guid.Parse(vm.ProviderId));

                if (getProvider == null)
                {
                    await Logging <FollowProviderServiceCommand> .
                    ErrorAsync(ActionCommand.COMMAND_ADD, userName.UserName, ErrorMessageConstant.ERROR_CANNOT_FIND_ID);

                    return(new CommandResult <FollowingProviderServiceViewModel>
                    {
                        isValid = false,
                        errorMessage = ErrorMessageConstant.ERROR_CANNOT_FIND_ID
                    });
                }
                var data = MappingData(vm);
                await _providerFollowingRepository.Add(data);

                await _providerFollowingRepository.SaveAsync();

                await LoggingUser <FollowProviderServiceCommand> .
                InformationAsync(getProvider.UserId.ToString(), userName.UserName, userName.UserName + " đã theo dõi provider của bạn");

                await Logging <FollowProviderServiceCommand> .InformationAsync(ActionCommand.COMMAND_ADD, userName.UserName, JsonConvert.SerializeObject(data));

                return(new CommandResult <FollowingProviderServiceViewModel>
                {
                    isValid = true,
                    myModel = vm
                });
            }
            catch (Exception ex)
            {
                await Logging <FollowProviderServiceCommand> .ErrorAsync(ex, ActionCommand.COMMAND_ADD, userName.UserName, "Has error:");

                return(new CommandResult <FollowingProviderServiceViewModel>
                {
                    isValid = false,
                    errorMessage = ex.InnerException.Message.ToString()
                });
            }
        }
Пример #10
0
        public async Task <CommandResult <ProviderServiceViewModel> > ExecuteAsync(string providerId, string reason)
        {
            var userId   = _httpContextAccessor.HttpContext.User.Identity.Name;
            var userName = _userRepository.FindByIdAsync(userId).Result.UserName;

            try
            {
                if (await _checkUserIsAdminQuery.ExecuteAsync(userId) || await _getPermissionActionQuery.ExecuteAsync(userId, ConstantFunctions.PROVIDER, ActionSetting.CanUpdate))
                {
                    var mappingProvider = await _providerRepository.FindByIdAsync(Guid.Parse(providerId));

                    if (mappingProvider == null)
                    {
                        return(new CommandResult <ProviderServiceViewModel>
                        {
                            isValid = false,
                            errorMessage = ErrorMessageConstant.ERROR_CANNOT_FIND_ID
                        });
                    }
                    //Check user is Provider
                    if (_checkUserIsProviderQuery.ExecuteAsync(userId).Result.isValid == true)
                    {
                        var providerRole = await _roleRepository.FindByNameAsync(ConstantRoles.Provider);

                        _userRoleRepository.DeleteUserRole(mappingProvider.UserId, providerRole.Id);
                    }
                    mappingProvider.Status = Status.InActive;
                    _providerRepository.Update(mappingProvider);
                    await _providerRepository.SaveAsync();

                    var userMail = await _userRepository.FindByIdAsync(mappingProvider.UserId.ToString());

                    //Set content for email
                    var getEmailContent = await _getAllEmailServiceQuery.ExecuteAsync();

                    var getFirstEmail = getEmailContent.Where(x => x.Name == EmailName.Reject_Provider).FirstOrDefault();
                    getFirstEmail.Message = getFirstEmail.Message.Replace(EmailKey.UserNameKey, userMail.Email).Replace(EmailKey.ReasonKey, reason);
                    ContentEmail(_config.Value.SendGridKey, getFirstEmail.Subject,
                                 getFirstEmail.Message, userMail.Email).Wait();

                    await LoggingUser <RejectProviderServiceCommand> .
                    InformationAsync(mappingProvider.UserId.ToString(), userName, userName + "Nhà cung cấp :" + mappingProvider.ProviderName + "của bạn đã bị từ chối.Kiểm tra mail để xem lí do");

                    await Logging <RejectProviderServiceCommand> .
                    InformationAsync(ActionCommand.COMMAND_REJECT, userName, mappingProvider.ProviderName + "has been rejected");

                    return(new CommandResult <ProviderServiceViewModel>
                    {
                        isValid = true,
                    });
                }
                else
                {
                    await Logging <RejectProviderServiceCommand> .
                    WarningAsync(ActionCommand.COMMAND_REJECT, userName, ErrorMessageConstant.ERROR_UPDATE_PERMISSION);

                    return(new CommandResult <ProviderServiceViewModel>
                    {
                        isValid = false,
                        errorMessage = ErrorMessageConstant.ERROR_UPDATE_PERMISSION
                    });
                }
            }
            catch (Exception ex)
            {
                await Logging <RejectProviderServiceCommand> .
                ErrorAsync(ex, ActionCommand.COMMAND_REJECT, userName, "Has error");

                return(new CommandResult <ProviderServiceViewModel>
                {
                    isValid = false,
                    errorMessage = ex.InnerException.ToString()
                });
            }
        }
Пример #11
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()
                });
            }
        }
        public async Task <CommandResult <FollowingProviderServiceViewModel> > ExecuteAsync(int idRegister)
        {
            var userId   = _httpContextAccessor.HttpContext.User.Identity.Name;
            var userName = await _userManager.FindByIdAsync(userId);

            try
            {
                var findIdRegister = await _providerFollowingRepository.FindByIdAsync(idRegister);

                if (findIdRegister == null)
                {
                    await Logging <RegisterEmailProviderServiceCommand>
                    .ErrorAsync(ActionCommand.COMMAND_UPDATE, userName.UserName, "Cannot find your following");

                    return(new CommandResult <FollowingProviderServiceViewModel>
                    {
                        isValid = false,
                        errorMessage = "Cannot find your following"
                    });
                }
                var getProvider = await _providerRepository.FindByIdAsync(findIdRegister.ProviderId);

                if (getProvider == null)
                {
                    await Logging <RegisterEmailProviderServiceCommand> .
                    ErrorAsync(ActionCommand.COMMAND_ADD, userName.UserName, ErrorMessageConstant.ERROR_CANNOT_FIND_ID);

                    return(new CommandResult <FollowingProviderServiceViewModel>
                    {
                        isValid = false,
                        errorMessage = ErrorMessageConstant.ERROR_CANNOT_FIND_ID
                    });
                }
                if (findIdRegister.IsReceiveEmail)
                {
                    findIdRegister.IsReceiveEmail = !findIdRegister.IsReceiveEmail;
                }
                else
                {
                    findIdRegister.IsReceiveEmail = !findIdRegister.IsReceiveEmail;
                }
                _providerFollowingRepository.Update(findIdRegister);
                await _providerFollowingRepository.SaveAsync();

                await LoggingUser <RegisterEmailProviderServiceCommand> .
                InformationAsync(getProvider.UserId.ToString(), userName.UserName, userName.UserName + " had follow your provider");

                await Logging <RegisterEmailProviderServiceCommand> .InformationAsync(ActionCommand.COMMAND_UPDATE, userName.UserName, JsonConvert.SerializeObject(findIdRegister));

                return(new CommandResult <FollowingProviderServiceViewModel>
                {
                    isValid = true,
                    myModel = new FollowingProviderServiceViewModel
                    {
                        UserId = findIdRegister.UserId.ToString(),
                        DateCreated = DateTime.Now,
                        IsReceiveEmail = findIdRegister.IsReceiveEmail,
                        ProviderId = findIdRegister.ProviderId.ToString()
                    }
                });
            }
            catch (Exception ex)
            {
                await Logging <RegisterEmailProviderServiceCommand> .ErrorAsync(ex, ActionCommand.COMMAND_UPDATE, userName.UserName, "Has error");

                return(new CommandResult <FollowingProviderServiceViewModel>
                {
                    isValid = false,
                    errorMessage = ex.InnerException.Message.ToString()
                });
            }
        }
Пример #13
0
        public async Task <CommandResult <NewsProviderViewModel> > ExecuteAsync(int idNews)
        {
            var userId   = _httpContextAccessor.HttpContext.User.Identity.Name;
            var userName = _userRepository.FindByIdAsync(userId).Result.UserName;

            try
            {//Check user has permission first
                if (await _checkUserIsAdminQuery.ExecuteAsync(userId) || await _getPermissionActionQuery.ExecuteAsync(userId, ConstantFunctions.NEWS, ActionSetting.CanUpdate))
                {
                    var mappingProvider = await _newProviderRepository.FindByIdAsync(idNews);

                    if (mappingProvider == null)
                    {
                        return(new CommandResult <NewsProviderViewModel>
                        {
                            isValid = false,
                            errorMessage = ErrorMessageConstant.ERROR_CANNOT_FIND_ID
                        });
                    }
                    var map = MappingNewProvider(mappingProvider);
                    _newProviderRepository.Update(map);
                    await _newProviderRepository.SaveAsync();

                    var getProvider = await _providerRepository.FindSingleAsync(x => x.Id == mappingProvider.ProviderId);

                    var getEmail = await _userRepository.FindByIdAsync(getProvider.UserId.ToString());

                    //Set content for email
                    var getAllEmail = await _getAllEmailServiceQuery.ExecuteAsync();

                    var getFirstEmail = getAllEmail.Where(x => x.Name == EmailName.Approve_News).FirstOrDefault();
                    var generateCode  = _configuration.GetSection("Host").GetSection("LinkConfirmNewsProvider").Value +
                                        mappingProvider.CodeConfirm + '_' + mappingProvider.Id;
                    getFirstEmail.Message = getFirstEmail.Message.
                                            Replace(EmailKey.UserNameKey, getEmail.UserName).
                                            Replace(EmailKey.NewNameKey, mappingProvider.Title).
                                            Replace(EmailKey.ConfirmLink, generateCode);;

                    ContentEmail(_configEmail.Value.SendGridKey, getFirstEmail.Subject,
                                 getFirstEmail.Message, getEmail.Email).Wait();
                    await LoggingUser <ApproveNewsProviderServiceCommand> .
                    InformationAsync(getProvider.UserId.ToString(), userName, userName + "Tin tức" + map.Title + "của bạn đã được chấp thuận");

                    await Logging <ApproveNewsProviderServiceCommand> .
                    InformationAsync(ActionCommand.COMMAND_APPROVE, userName, userName + "Your news provider:" + map.Title + "has been approved");

                    return(new CommandResult <NewsProviderViewModel>
                    {
                        isValid = true,
                    });
                }
                else
                {
                    await Logging <ApproveNewsProviderServiceCommand> .
                    WarningAsync(ActionCommand.COMMAND_APPROVE, userName, ErrorMessageConstant.ERROR_UPDATE_PERMISSION);

                    return(new CommandResult <NewsProviderViewModel>
                    {
                        isValid = false,
                        errorMessage = ErrorMessageConstant.ERROR_UPDATE_PERMISSION
                    });
                }
            }
            catch (Exception ex)
            {
                await Logging <ApproveNewsProviderServiceCommand> .
                ErrorAsync(ex, ActionCommand.COMMAND_APPROVE, userName, "Has error");

                return(new CommandResult <NewsProviderViewModel>
                {
                    isValid = false,
                    errorMessage = ex.InnerException.ToString()
                });
            }
        }