示例#1
0
        private static void ProcessData(int identity, UserBaseEntity user, ISunnetLog loggerHelper,
                                        SFTPHelper sftp, string successPath, FileInfo file)
        {
            //将excel写回sftp
            if (!sftp.DirExist(successPath))
            {
                sftp.MakeDir(successPath);
            }
            sftp.Put(file.FullName, successPath + "/" + file.Name);

            string        tempPath = ConfigurationManager.AppSettings["TempPath"];
            EmailTemplete temp     = XmlHelper.GetEmailTemplete(tempPath, "EmailTemplate.xml");

            string subject = temp.Subject;
            string body    = string.Empty;

            body = temp.Body.Replace("{Name}", user.FirstName + " " + user.LastName);

            IEmailSender emailSender = ObjectFactory.GetInstance <IEmailSender>();

            emailSender.SendMail(user.PrimaryEmailAddress, subject, body);

            Console.WriteLine(string.Format("Result: Success. Identity: {0}", identity));
            loggerHelper.Info(string.Format("Result: Success. Identity: {0}", identity));
        }
 public string GetEnumValue(UserBaseEntity entity, string enumColumnName)
 {
     switch (_type)
     {
     default:
         return(null);
     }
 }
示例#3
0
        public ActionResult EnabledAccount(string keyValue)
        {
            UserBaseEntity userBaseEntity = new UserBaseEntity();

            userBaseEntity.F_Id          = keyValue;
            userBaseEntity.F_EnabledMark = true;
            _userService.UpdateForm(userBaseEntity);
            return(Success("账户启用成功。"));
        }
示例#4
0
 public void SubmitForm(UserBaseEntity userBaseEntity, UserLogOnBaseEntity userLogOnBaseEntity, string keyValue)
 {
     if (!string.IsNullOrEmpty(keyValue))
     {
         userBaseEntity.Modify(keyValue);
     }
     else
     {
         userBaseEntity.Create();
     }
     service.SubmitForm(userBaseEntity, userLogOnBaseEntity, keyValue);
 }
示例#5
0
        public void Register(UserInfo user, string password)
        {
            LoginEntity loginEntity = new LoginEntity();

            loginEntity.UserId     = user.UserId;
            loginEntity.UserName   = user.UserName;
            loginEntity.IsCanLogin = true;

            UserBaseEntity userBaseEntity = new UserBaseEntity();

            userBaseEntity.UserId     = user.UserId;
            userBaseEntity.RealName   = user.RealName;
            userBaseEntity.Email      = user.Email;
            userBaseEntity.CardType   = user.IdCardType;
            userBaseEntity.CardNumber = user.IdCardNumber;
            userBaseEntity.Mobile     = user.Mobile;

            UserBalanceEntity balanceEntity = new UserBalanceEntity();

            balanceEntity.UserId  = user.UserId;
            balanceEntity.Balance = 0;
            balanceEntity.Freeze  = 0;

            try
            {
                using (ILHDBTran tran = BeginTran())
                {
                    UserManager manager = new UserManager(tran);
                    password = EncryptTool.MD5(password);
                    manager.AddLogin(loginEntity, password);
                    manager.AddUserBase(userBaseEntity);
                    manager.AddBalance(balanceEntity);
                    tran.Commit();
                }
            }
            catch (Exception ex)
            {
                string errMsg = "注册新用户失败 - 系统异常,请联系系统管理员!";
                throw HandleException(LogCategory.Register, errMsg, ex);
            }
        }
示例#6
0
        public UserBaseEntity CheckLogin(string username, string password)
        {
            UserBaseEntity userBaseEntity = service.FindEntity(t => t.F_Account == username);

            if (userBaseEntity != null)
            {
                if (userBaseEntity.F_EnabledMark == true)
                {
                    UserLogOnBaseEntity userLogOnBaseEntity = _userLogOnService.GetForm(userBaseEntity.F_Id);
                    string dbPassword = Md5.md5(DesEncrypt.Encrypt(password.ToLower(), userLogOnBaseEntity.F_UserSecretkey).ToLower(), 32).ToLower();
                    if (dbPassword == userLogOnBaseEntity.F_UserPassword)
                    {
                        DateTime lastVisitTime = DateTime.Now;
                        int      LogOnCount    = (userLogOnBaseEntity.F_LogOnCount).ToInt() + 1;
                        if (userLogOnBaseEntity.F_LastVisitTime != null)
                        {
                            userLogOnBaseEntity.F_PreviousVisitTime = userLogOnBaseEntity.F_LastVisitTime.ToDate();
                        }
                        userLogOnBaseEntity.F_LastVisitTime = lastVisitTime;
                        userLogOnBaseEntity.F_LogOnCount    = LogOnCount;
                        _userLogOnService.UpdateForm(userLogOnBaseEntity);
                        return(userBaseEntity);
                    }
                    else
                    {
                        throw new Exception("密码不正确,请重新输入");
                    }
                }
                else
                {
                    throw new Exception("账户被系统锁定,请联系管理员");
                }
            }
            else
            {
                throw new Exception("账户不存在,请重新输入");
            }
        }
 public void GivenICompleteTheRegistrationForm(string userType)
 {
     UserEntity = new UserEntityFactory(userType).Construct();
     UserEntity.Configure(BaseEntity.ConfigureOptions.CREATE_ATTRIBUTES_ONLY);
     RegisterUserPage.Register(UserEntity);
 }
示例#8
0
 public void UpdateForm(UserBaseEntity userBaseEntity)
 {
     service.Update(userBaseEntity);
 }
示例#9
0
 public abstract void Register(UserBaseEntity entity);
示例#10
0
 public override void Register(UserBaseEntity entity)
 {
     FillRegistrationDetails(entity.EmailAddress, entity.Password);
     RegisterButton.Click();
 }
示例#11
0
 public ActionResult SubmitForm(UserBaseEntity userBaseEntity, UserLogOnBaseEntity userLogOnBaseEntity, string keyValue)
 {
     _userService.SubmitForm(userBaseEntity, userLogOnBaseEntity, keyValue);
     return(Success("操作成功。"));
 }
示例#12
0
        static void Main(string[] args)
        {
            IoC.Init();

            string filePath = string.IsNullOrEmpty(ConfigurationManager.AppSettings["UploadFile"]) ?
                              "C:/log/cli/Upload/data_Process/" : ConfigurationManager.AppSettings["UploadFile"];

            BUPProcessBusiness            _bupProcessBusiness   = new BUPProcessBusiness();
            BUPTaskBusiness               _bupTaskBusiness      = new BUPTaskBusiness();
            AutomationSettingBusiness     _autoBusiness         = new AutomationSettingBusiness();
            List <AutomationSettingModel> processingAutomations = _autoBusiness.GetProcessingAutomationSettings();
            UserBusiness _userBusiness = new UserBusiness();
            ISunnetLog   LoggerHelper  = ObjectFactory.GetInstance <ISunnetLog>();

            LoggerHelper.Info("start ......");
            Console.WriteLine("start ......");

            if (processingAutomations != null && processingAutomations.Count > 0)
            {
                List <UserBaseEntity> users = _userBusiness.GetUsers(processingAutomations.Select(r => r.CreatedBy).ToList());
                foreach (AutomationSettingModel item in processingAutomations)
                {
                    IEncrypt   encrypt = ObjectFactory.GetInstance <IEncrypt>();
                    SFTPHelper sftp    = new SFTPHelper(item.HostIp, item.Port, item.UserName, encrypt.Decrypt(item.PassWord), LoggerHelper);

                    bool bconn = sftp.Connect();
                    if (bconn)
                    {
                        try
                        {
                            UserBaseEntity user = users.Find(r => r.ID == item.CreatedBy);
                            if (user != null)
                            {
                                Dictionary <string, dynamic> dicType = GetDictionary(item);

                                foreach (var type in dicType)
                                {
                                    if (sftp.DirExist(type.Key))
                                    {
                                        string localPath = filePath + (item.CommunityName + "/" + type.Key.Replace("/", "").Replace("\\", ""))
                                                           + "/" + DateTime.Now.ToString("MM-dd-yyyy") + "/";
                                        string failedPath  = type.Key + "/Failed/" + DateTime.Now.ToString("MM-dd-yyyy") + "/";
                                        string successPath = type.Key + "/Processed/" + DateTime.Now.ToString("MM-dd-yyyy") + "/";

                                        //从sftp获取文件到本地目录
                                        List <string> objList       = new List <string>();
                                        List <string> LocalFileList = new List <string>();
                                        objList = sftp.GetFileList(type.Key, new string[] { ".xls", ".xlsx" });
                                        if (objList.Count > 0)
                                        {
                                            Helper.CheckAndCreatePath(localPath);
                                            foreach (object obj in objList)
                                            {
                                                string fileUrl     = obj.ToString();
                                                string newFileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "--" + fileUrl;
                                                sftp.Get(type.Key + "/" + fileUrl, localPath + "/" + newFileName);
                                                LocalFileList.Add(newFileName);
                                                sftp.DeleteFile(type.Key + "/" + fileUrl);
                                            }

                                            if (Directory.Exists(localPath))
                                            {
                                                DirectoryInfo dr = new DirectoryInfo(localPath);
                                                foreach (FileInfo file in dr.GetFiles()
                                                         .Where(r => r.Extension.ToLower() == ".xls" || r.Extension.ToLower() == ".xlsx" &&
                                                                LocalFileList.Contains(r.Name)))
                                                {
                                                    Console.WriteLine(string.Format("Start processing {0}", file.FullName));
                                                    LoggerHelper.Info(string.Format("Start processing {0}", file.FullName));
                                                    //导入数据到BUP表
                                                    DataTable dt       = new DataTable();
                                                    string    errorMsg = "";
                                                    errorMsg = _bupProcessBusiness.InvalidateFile(file.FullName, type.Value.Count, type.Value.Type, out dt);
                                                    if (!string.IsNullOrEmpty(errorMsg))
                                                    {
                                                        Console.WriteLine(string.Format("Result: Error. Message: {0}", errorMsg));
                                                        LoggerHelper.Info(string.Format("Result: Error. Message: {0}", errorMsg));
                                                        WriteErrorMsg(sftp, localPath, failedPath, file, errorMsg);
                                                        continue;
                                                    }

                                                    int    identity       = 0;
                                                    string originFileName = file.Name.Substring(file.Name.IndexOf("--") + 2);
                                                    //Automation   默认发送邀请
                                                    switch ((BUPType)type.Value.Type)
                                                    {
                                                    case BUPType.School:
                                                        errorMsg = _bupProcessBusiness.ProcessSchool(dt, user.ID, originFileName, file.Name, user,
                                                                                                     out identity, BUPProcessType.Automation, item.CommunityId);
                                                        break;

                                                    case BUPType.Classroom:
                                                        errorMsg = _bupProcessBusiness.ProcessClassroom(dt, user.ID, originFileName, file.Name, user,
                                                                                                        item.CommunityId, out identity, BUPProcessType.Automation);
                                                        break;

                                                    case BUPType.Class:
                                                        errorMsg = _bupProcessBusiness.ProcessClass(dt, user.ID, originFileName, file.Name, user,
                                                                                                    out identity, BUPProcessType.Automation, item.CommunityId);
                                                        break;

                                                    case BUPType.Teacher:
                                                        errorMsg = _bupProcessBusiness.ProcessTeacher(dt, user.ID, "1", originFileName, file.Name, user,
                                                                                                      out identity, BUPProcessType.Automation, item.CommunityId);
                                                        break;

                                                    case BUPType.Student:
                                                        errorMsg = _bupProcessBusiness.ProcessStudent(dt, user.ID, originFileName, file.Name, user,
                                                                                                      out identity, BUPProcessType.Automation, item.CommunityId);
                                                        break;

                                                    case BUPType.CommunityUser:
                                                        errorMsg = _bupProcessBusiness.ProcessCommunityUser(dt, user.ID, false, "1", originFileName, file.Name,
                                                                                                            user, item.CommunityId, out identity, BUPProcessType.Automation);
                                                        break;

                                                    case BUPType.CommunitySpecialist:
                                                        errorMsg = _bupProcessBusiness.ProcessCommunityUser(dt, user.ID, true, "1", originFileName, file.Name,
                                                                                                            user, item.CommunityId, out identity, BUPProcessType.Automation);
                                                        break;

                                                    case BUPType.Principal:
                                                        errorMsg = _bupProcessBusiness.ProcessPrincipal(dt, user.ID, false, originFileName, file.Name, "1",
                                                                                                        user, item.CommunityId, out identity, BUPProcessType.Automation);
                                                        break;

                                                    case BUPType.SchoolSpecialist:
                                                        errorMsg = _bupProcessBusiness.ProcessPrincipal(dt, user.ID, true, originFileName, file.Name, "1",
                                                                                                        user, item.CommunityId, out identity, BUPProcessType.Automation);
                                                        break;

                                                    case BUPType.Parent:
                                                        errorMsg = _bupProcessBusiness.ProcessParent(dt, user.ID, originFileName, file.Name,
                                                                                                     out identity, BUPProcessType.Automation);
                                                        break;

                                                    default:
                                                        errorMsg = "Can not find this action: " + type.Value.Type;
                                                        break;
                                                    }
                                                    if (!string.IsNullOrEmpty(errorMsg))
                                                    {
                                                        Console.WriteLine(string.Format("Result: Error. Message: {0}", errorMsg));
                                                        LoggerHelper.Info(string.Format("Result: Error. Message: {0}", errorMsg));
                                                        WriteErrorMsg(sftp, localPath, failedPath, file, errorMsg);
                                                        continue;
                                                    }

                                                    //执行数据导入操作
                                                    try
                                                    {
                                                        if (identity > 0)
                                                        {
                                                            ProcessHandler handler     = new ProcessHandler(BUPTaskBusiness.Start);
                                                            IAsyncResult   asyncResult = handler.BeginInvoke(identity, user.ID, null, null);
                                                            handler.EndInvoke(asyncResult);  //此方法会等待异步执行完成后再往下执行
                                                            ProcessData(identity, user, LoggerHelper, sftp, successPath, file);
                                                        }
                                                    }
                                                    catch (Exception ex)
                                                    {
                                                        Console.WriteLine(string.Format("Result: Error. Message: {0}", ex.Message));
                                                        LoggerHelper.Info(string.Format("Result: Error. Message: {0}", errorMsg));
                                                        WriteErrorMsg(sftp, localPath, failedPath, file, ex.Message);
                                                        continue;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                sftp.Disconnect();
                            }
                            else
                            {
                                LoggerHelper.Debug("Can not find user with the ID: " + item.CreatedBy + ". DateTime: " + DateTime.Now.ToString());
                            }
                        }
                        catch (Exception ex)
                        {
                            if (sftp.IsConnected)
                            {
                                sftp.Disconnect();
                            }
                            Console.WriteLine(ex.Message);
                            LoggerHelper.Info(string.Format("Result: Error. Message: {0}", ex.Message));
                            LoggerHelper.Debug(ex);
                        }
                    }
                    else
                    {
                        LoggerHelper.Info("can not connect to the sftp server");
                        Console.WriteLine("can not connect to the sftp server");
                    }
                }
            }
            LoggerHelper.Info("end ......");
            Console.WriteLine("end ......");
        }
示例#13
0
 public void GivenICompleteTheFormRequestingToResetMyPassword(string userType)
 {
     _userEntity = new UserEntityFactory(userType).ConstructAndSave(_testOutputHelper);
     WaitUtils.waitForPage(_driverWait);
     _requestResetPasswordPage.SetEmailAndSubmit(_userEntity.EmailAddress);
 }
示例#14
0
        public Registration(UserBaseEntity userBaseEntity, ITestOutputHelper testOutputHelper)
        {
            var endpointName = userBaseEntity.EndpointName;
            var clientxsrf   = ClientXsrf.GetValidClientAndxsrfTokenPair(_configure);
            var client       = clientxsrf.client;

            client.BaseUrl = new Uri(_configure.BaseUrl + $"/api/register/{endpointName}");
            var request = new RestRequest {
                Method = Method.POST, RequestFormat = DataFormat.Json
            };

            request.AddHeader("X-XSRF-TOKEN", clientxsrf.xsrfToken);
            request.AddHeader("Content-Type", "application/json");
            request.AddParameter("query", userBaseEntity.ToJson(), ParameterType.RequestBody);
            var response = client.Execute(request);

            ApiOutputHelper.WriteRequestResponseOutput(request, response, testOutputHelper);

            var errorsList = new List <Exception>();

            if (response.StatusCode != System.Net.HttpStatusCode.OK)
            {
                errorsList.Add(new UnexpectedResponseCodeException($"Expected Status Code: {System.Net.HttpStatusCode.OK}, Got: {response.StatusCode}"));
            }

            // get the list of error messages
            var errorMessages = JObject.Parse(response?.Content)["errors"]?.Select(x => x["message"]?.ToString()).ToList() ?? new List <string>();

            // get new exceptions for each of these so an aggregate exception can be thrown
            foreach (var errorMessage in errorMessages)
            {
                var accountExistsPattern = Regex.Matches(errorMessage, "User name '(.*)' is already taken.");
                if (accountExistsPattern.Any())
                {
                    errorsList.Add(new UserExistsException(errorMessage));
                }
                switch (errorMessage)
                {
                case "Passwords must have at least one non alphanumeric character.":
                    errorsList.Add(new PasswordNonAlphanumericException(errorMessage));
                    break;

                case "Passwords must have at least one digit ('0'-'9').":
                    errorsList.Add(new PasswordAtLeastOneDigitException(errorMessage));
                    break;

                case "Passwords must have at least one uppercase ('A'-'Z').":
                    errorsList.Add(new PasswordAtLeastOneUpperCaseCharacterException(errorMessage));
                    break;

                case "The Email field is not a valid e-mail address.":
                case "Email is not a valid email":
                    errorsList.Add(new InvalidEmailAddressException(errorMessage));
                    break;

                case "This account is not yet activated":
                    errorsList.Add(new AccountNotActivatedException(errorMessage));
                    break;

                case "Passwords must be at least 6 characters.":
                    errorsList.Add(new PasswordLengthException(errorMessage));
                    break;

                default:
                    errorsList.Add(new Exception($"An error returned which could not be handled, error message: {errorMessage}"));
                    break;
                }
            }

            if (errorMessages.Any())
            {
                throw new AggregateException(errorsList);
            }
        }