コード例 #1
0
        public UserLoginResponse Login(string language, UserLoginRequest request)
        {
            string errorMessageKey = "";

            try
            {
                AppUser user = _work.LoadUserWithEmail(request.LoginName);
                if (user == null || request.Password != user.Password)
                {
                    errorMessageKey = ConstentMessages.UserNotExist;
                    throw new ArgumentException();
                }
                errorMessageKey = ConstentMessages.LoadRoleError;
                Dictionary <string, string> moduleRights = _work.LoadModuleRights(user.RoleId);

                DateTime utcNow = DateTime.UtcNow;
                user.Session = new AppSession {
                    Id = ObjectId.GenerateNewId().ToString(), CreateTs = utcNow, UpdateTs = utcNow
                };
                errorMessageKey = ConstentMessages.CreateSessionForUserError;
                _work.UpdateAppUser(user);
                return(new UserLoginResponse {
                    UserName = user.Name, SessionId = user.Session.Id, SessionUpdateTs = user.Session.UpdateTs.ToJsTime(), ModuleRights = moduleRights, SessionDuration = _appSetting.SessionDuration, UploadFileMaxSize = _appSetting.UploadFileMaxSize, UploadFileTypes = _appSetting.UploadFileTypes
                });
            }
            catch (Exception ex)
            {
                throw new TranslationException(_translator, language, errorMessageKey, ex);
            }
        }
コード例 #2
0
        protected void UpdateAdminSession(AppUser admin)
        {
            DateTime utcNow = DateTime.UtcNow;

            admin.Session = new AppSession {
                Id = ObjectId.GenerateNewId().ToString(), CreateTs = utcNow, UpdateTs = utcNow
            };
            _baseUserWorkOfUnit.UpdateAppUser(admin);
        }
コード例 #3
0
        public MessageSessionResponse Update(string language, string sessionId, UserRequest request)
        {
            AppUser admin = this.LoadUserWithSessionId(sessionId);

            ValidateSessionAndRight(language, admin, EnumData.AppModules.AppUser.ToString(),
                                    new List <string> {
                EnumData.RoleRight.all.ToString(), EnumData.RoleRight.account.ToString()
            });
            ValidationResponse validationResponse = Validat <UserRequest>(_userValidator, request, language);

            if (validationResponse != null)
            {
                throw new MessagesException(validationResponse.Messages);
            }
            if (_work.EmailIsExist(request.Email))
            {
                throw new TranslationException(_translator, language, ConstentMessages.EmailIsExist, null);
            }
            if (_work.UserNameIsExist(request.UserName))
            {
                throw new TranslationException(_translator, language, ConstentMessages.UserNameIsExist, null);
            }

            string errorMessageKey = "";

            try
            {
                errorMessageKey = ConstentMessages.ServerError;
                AppUser appUser = _work.LoadUserWithId(request.Id);
                if (appUser == null)
                {
                    throw new TranslationException(_translator, language, ConstentMessages.UserNotExist, null);
                }
                UpdateUserFromUserRequest(appUser, request);
                if (request.UpdateTs != appUser.UpdateTs.ToJsTime())
                {
                    throw new TranslationException(_translator, language, ConstentMessages.UserIsChanged, null);
                }
                _work.UpdateAppUser(appUser);
                this.UpdateAdminSession(admin);
                return(new MessageSessionResponse {
                    Message = "OK", SessionId = admin.Session.Id, SessionUpdateTs = admin.Session.UpdateTs.ToJsTime()
                });
            }
            catch (TranslationException ex)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new TranslationException(_translator, language, errorMessageKey, ex);
            }
        }