예제 #1
0
        /// <summary>
        /// Searches the shareholder.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns></returns>
        public async Task <List <ShareholderSearchViewModel> > SearchShareholder(ShareholderSearchModel model)
        {
            const string defaultSort = "Name ASC";
            var          sortType    = model.IsSortDesc ? "DESC" : "ASC";
            var          sortField   = ValidateUtils.IsNullOrEmpty(model.SortField)
                ? defaultSort
                : $"{model.SortField} {sortType}";
            var query = _userProfileRepository.GetManyAsNoTracking(x =>
                                                                   (ValidateUtils.IsNullOrEmpty(model.Name) || x.FirstName.ToUpper().Contains(model.Name.ToUpper())) &&
                                                                   (ValidateUtils.IsNullOrEmpty(model.Name) || x.LastName.ToUpper().Contains(model.Name.ToUpper())))
                        .Select(x => new
            {
                x.UserProfileId,
                name = $"{x.FirstName} {x.LastName}",
                x.Email
            })
                        .Join(_shareholderRepository.GetAllAsNoTracking(),
                              x => x.UserProfileId, y => y.UserProfileId, (x, y) => new ShareholderSearchViewModel
            {
                Id    = y.ShareholderId,
                Email = x.Email,
                Name  = x.name,
                ShareholderTypeCode = y.ShareholderTypeCode
            }).OrderBy(sortField);
            var result = query.Skip((model.Page - 1) * model.PageSize)
                         .Take(model.PageSize);

            return(result.ToList());
        }
예제 #2
0
        public async Task <string> SearchCompany(CompanySearchModel model)
        {
            string defaultSort = "CompanyName ASC";
            string sortType    = model.IsSortDesc ? "DESC" : "ASC";
            string sortField   = ValidateUtils.IsNullOrEmpty(model.SortField) ? defaultSort : $"{model.SortField} {sortType}";
            var    query       = _AdministratorRepository.GetManyAsNoTracking(x =>
                                                                              (ValidateUtils.IsNullOrEmpty(model.AdminUserName) || x.UserName == model.AdminUserName))
                                 .Select(x => new
            {
                x.Id,
                x.UserName,
            })
                                 .Join(_CompanyRepository.GetManyAsNoTracking(x =>
                                                                              (ValidateUtils.IsNullOrEmpty(model.Address) || x.Address.ToUpper().Contains(model.AdminUserName.ToUpper())) &&
                                                                              (ValidateUtils.IsNullOrEmpty(model.Capital) || x.Capital.ToUpper().Contains(model.Capital.ToUpper())) &&
                                                                              (ValidateUtils.IsNullOrEmpty(model.CompanyName) || x.CompanyName.ToUpper().Contains(model.CompanyName.ToUpper()))
                                                                              ), x => x.Id, y => y.AdminId, (x, y) => new CompanyViewSearchModel
            {
                AdminUserName = x.UserName,
                Address       = y.Address,
                Capital       = y.Capital,
                CompanyId     = y.Id,
                CompanyName   = y.CompanyName,
                OptionPoll    = y.OptionPoll,
                TotalShares   = y.TotalShares
            }).OrderBy(sortField);
            var count = await query.CountAsync();

            var result = query.Skip((model.Page - 1) * model.PageSize)
                         .Take(model.PageSize)
                         .ToList();

            return(ApiResponse.Ok(result, count));
        }
예제 #3
0
        /// <summary>
        /// Creates the user profile.
        /// </summary>
        /// <param name="profileModel">The profile model.</param>
        /// <param name="accountModel">The account model.</param>
        /// <returns></returns>
        /// <exception cref="FormatException">
        /// Email address invalid
        /// or
        /// Phone number invalid
        /// or
        /// Email existed
        /// </exception>
        public async Task <bool> CreateUserProfile(UserRegisterModel profileModel
                                                   , UserAccountCreateModel accountModel)
        {
            if (!ValidateUtils.IsMail(profileModel.Email))
            {
                throw new FormatException("Email address invalid");
            }

            var query = _userProfileRepository.GetManyAsNoTracking(x => x.Email.Equals(profileModel.Email));

            if (query.ToList().Count != 0)
            {
                throw new FormatException("Email existed");
            }
            var userProfile = _userProfileRepository.Insert(new UserProfile
            {
                Email     = profileModel.Email,
                FirstName = profileModel.FirstName,
                LastName  = profileModel.LastName,
                Phone     = profileModel.Phone,
                Address   = profileModel.Address
            });

            return(await _userAccountService.CreateUserAccount(accountModel, userProfile.Entity.UserProfileId));
        }
예제 #4
0
        public ActionResult CreateContact(string projectGuid, string organizationName,
                                          string dutyType, string name, string cellPhone, string email, string note)
        {
            return(ActionUtils.Json(() =>
            {
                var project = m_dbAdapter.Project.GetProjectByGuid(projectGuid);
                CheckHandleContactPermission(project);

                ValidateUtils.Name(organizationName, "相关方", 50);
                CommUtils.Assert(name.Length <= 30, "联系人不能超过30个字符数!");
                CommUtils.Assert(email.Length <= 38, "邮箱不能超过38个字符数!");
                CommUtils.Assert(cellPhone.Length <= 30, "电话不能超过30个字符数!");

                var contact = new Contact();
                contact.ProjectId = project.ProjectId;
                contact.OrganizationName = organizationName;
                contact.DutyType = CommUtils.ParseEnum <EDutyType>(dutyType);
                contact.Name = name;
                contact.Email = email;
                contact.CellPhone = cellPhone;
                contact.Note = note;
                m_dbAdapter.Contact.AddContact(contact);

                var logicModel = Platform.GetProject(project.ProjectGuid);
                logicModel.Activity.Add(project.ProjectId, ActivityObjectType.Contact, contact.Guid, "增加机构:" + contact.OrganizationName);

                return ActionUtils.Success(1);
            }));
        }
예제 #5
0
        public string ValidateCustomer(sys_nguonnhap customer)
        {
            string rs  = null;
            var    vld = new ValidateUtils();

            rs = vld.CheckRequiredField(customer.tennguon, "Tên nguồn nhập", 1, 50);
            if (rs != null)
            {
                return(rs);
            }
            rs = vld.CheckRequiredField(customer.code, "Code ", 1, 25);
            if (rs != null)
            {
                return(rs);
            }
            rs = vld.CheckRequiredField(customer.diachi, "Địa chỉ", 3, 100);
            if (rs != null)
            {
                return(rs);
            }
            rs = vld.CheckRequiredField(customer.sdt, "Số điện thoại", 9, 15);
            if (rs != null)
            {
                return(rs);
            }
            return(null);
        }
예제 #6
0
        public static IList <NodeInfo> GetCachedNodeListByIds(string strIDs)
        {
            IList <NodeInfo> cacheAllNodes = Node.GetCacheAllNodes();
            IList <NodeInfo> list          = new List <NodeInfo>();

            string[] array = strIDs.Split(new char[]
            {
                ','
            });
            if (cacheAllNodes != null && cacheAllNodes.Count > 0)
            {
                foreach (NodeInfo current in cacheAllNodes)
                {
                    string[] array2 = array;
                    for (int i = 0; i < array2.Length; i++)
                    {
                        string text = array2[i];
                        if (ValidateUtils.IsNumber(text) && current.AutoID.Equals(int.Parse(text)))
                        {
                            list.Add(current);
                        }
                    }
                }
            }
            return(list);
        }
예제 #7
0
        /// <summary>
        /// Updates the information.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns></returns>
        /// <exception cref="EntityNotFoundException">User id {model.UserId} not found</exception>
        /// <exception cref="FormatException">
        /// Address not nullable
        /// </exception>
        public async Task <bool> UpdateInfo(UserEditInfoModel model)
        {
            // TODO handle update email in user account, if google or facebook account don't allow update
            var user = _userProfileRepository.GetById(model.UserId);

            if (user == null)
            {
                throw new EntityNotFoundException($"User id {model.UserId} not found");
            }
            if (!ValidateUtils.IsNumber(model.Phone) || model.Phone.ToCharArray().Length != 10)
            {
                throw new FormatException($"{model.Phone} is wrong format");
            }

            if (ValidateUtils.IsNullOrEmpty(model.Address))
            {
                throw new FormatException($"Address not nullable");
            }

            if (model.Address != null)
            {
                user.Address = model.Address;
            }
            if (model.Phone != null)
            {
                user.Phone = model.Phone;
            }
            _userProfileRepository.Update(user);
            await _unitOfWork.CommitAsync();

            return(true);
        }
예제 #8
0
        protected void btnSend_Click(object sender, System.EventArgs e)
        {
            string @string = WebUtils.GetString(this.TextBox5.Text);
            ISMS   iSMS    = SMSProvider.Create(PageBase.config.SMSClass);

            if (iSMS == null)
            {
                base.ShowMsg("短信接口配置不正确");
            }
            else if (!ValidateUtils.IsMobilePhone(@string))
            {
                base.ShowMsg("无效的手机号码");
            }
            else
            {
                string value = iSMS.SendMsg(@string, "这是一条测试短信,如果您收到此短信,表示短信服务有效![" + PageBase.config.SiteName + "]");
                if (iSMS.IsSuccess)
                {
                    base.ShowMsg("测试短信发送成功");
                }
                else
                {
                    base.ShowMsg(WebUtils.GetString(value));
                }
            }
        }
예제 #9
0
        //public SystemMessage AddService(string code, string name, string cycle, int status, string username, byte therapystart)
        //{
        //    SystemMessage systemMessage = new SystemMessage();
        //    try
        //    {
        //        var check = ValidateAddService(code, name, cycle);
        //        if (check != null)
        //        {
        //            systemMessage.IsSuccess = false;
        //            systemMessage.Message = check;
        //            return systemMessage;
        //        }

        //        var checkCode = db.sys_product.FirstOrDefault(ob => ob.code == code);
        //        if (checkCode != null)
        //        {
        //            systemMessage.IsSuccess = false;
        //            systemMessage.Message = "Mã service đã tồn tại";
        //            return systemMessage;
        //        }
        //        sys_product sysProduct = new sys_product();
        //        sysProduct.code = code;
        //        sysProduct.name = name;
        //        sysProduct.cycle = Int32.Parse(cycle);
        //        sysProduct.isactive = status == 1 ? true : false;
        //        sysProduct.CREATED_DATE = DateTime.Now;
        //        sysProduct.CREATED_BY = username;
        //        sysProduct.isappointment = true;
        //        sysProduct.therapystart = therapystart;
        //        sysProduct.TYPE = SystemMessageConst.Key.Product_Service;
        //        db.sys_product.Add(sysProduct);
        //        db.SaveChanges();
        //        systemMessage.IsSuccess = true;
        //        systemMessage.Message = SystemMessageConst.systemmessage.AddSuccess;
        //        return systemMessage;
        //    }
        //    catch (Exception e)
        //    {
        //        systemMessage.IsSuccess = false;
        //        systemMessage.Message = e.ToString();
        //        return systemMessage;
        //    }
        //}
        public string ValidateAddRetail(string code, string name, string price, string unit)
        {
            string rs    = null;
            var    check = new ValidateUtils();

            rs = check.CheckRequiredField(code, "Mã sản phẩm", 3, 15);
            if (rs != null)
            {
                return(rs);
            }
            rs = check.CheckRequiredField(name, "tên sản phẩm", 3, 100);
            if (rs != null)
            {
                return(rs);
            }
            rs = check.CheckRequiredField(name, "Đơn vị", 1, 100);
            if (rs != null)
            {
                return(rs);
            }
            int _price = 0;

            if (!Int32.TryParse(price, out _price))
            {
                return("Gía sản phẩm không đúng định dạng");
            }
            return(null);
        }
예제 #10
0
        public ActionResult EditFileName(string projectGuid, string folderGuid, string fileSeriesGuid, string fileName)
        {
            return(ActionUtils.Json(() =>
            {
                var dms = GetDMSAndCheckPermission(projectGuid, PermissionType.Write);
                CommUtils.AssertHasContent(fileName, "文件名称不能为空");
                ValidateUtils.FileName(fileName, "文档名称");
                CommUtils.Assert(fileName.Length <= 100, "文档名称[{0}]不能超过100个字符数", fileName);

                var folder = dms.FindFolder(folderGuid);
                folder.IgnoreNull = false;
                CommUtils.AssertNotNull(folder, "找不到文件夹[FolderGuid={0} DMSGuid={1}],请刷新后再试",
                                        folderGuid, dms.Instance.Guid);
                CommUtils.Assert(!folder.Files.Any(x => x.FileSeries.Name == fileName && x.FileSeries.Guid != fileSeriesGuid),
                                 "文件[{0}]已经存在", fileName);
                CommUtils.Assert(folder.Files.Exists(x => x.FileSeries.Guid == fileSeriesGuid), "文档不在文件夹下");

                var fileSeries = m_dbAdapter.DMSFileSeries.GetByGuid(fileSeriesGuid);
                var comment = "修改文件名称[" + fileSeries.Name + "]为[" + fileName + "]";
                fileSeries.Name = fileName;
                m_dbAdapter.DMSFileSeries.Update(fileSeries);
                m_dbAdapter.DMSProjectLog.AddDmsProjectLog(projectGuid, fileSeriesGuid, comment);
                return ActionUtils.Success(true);
            }));
        }
        public bool Verify(string guid)
        {
            if (string.IsNullOrWhiteSpace(guid))
            {
                return(false);
            }
            // Check 68 chars long
            if (guid.Length != 68)
            {
                return(false);
            }
            // Alpha numeric
            if (!ValidateUtils.IsAlphaNumeric(guid))
            {
                return(false);
            }

            string sha256   = guid.Substring(0, 64);
            string checksum = guid.Substring(64, 4);

            string checkSha256        = _hasher.Hash(sha256);
            string checksumCalculated = checkSha256.Substring(0, 4);

            if (!checksum.Equals(checksumCalculated))
            {
                return(false);
            }

            return(true);
        }
        /// <summary>
        /// Creates the user account.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <param name="userProfileId">The user profile identifier.</param>
        /// <returns></returns>
        /// <exception cref="FormatException">
        /// Email invalid
        /// or
        /// Password invalid
        /// </exception>
        public async Task <bool> CreateUserAccount(UserAccountCreateModel model, Guid userProfileId)
        {
            if (!ValidateUtils.IsMail(model.Email))
            {
                throw new FormatException("Email invalid");
            }
            if (model.Password.Length < 8)
            {
                throw new FormatException("Password invalid");
            }
            var passwordSalt = Guid.NewGuid();
            var data         = HashingUtils.GetHashData(model.Password + passwordSalt);

            _userAccountRepository.Insert(new UserAccount
            {
                Email                 = model.Email,
                PasswordHash          = data.DataHashed,
                PasswordHashAlgorithm = data.HashType,
                UserProfileId         = userProfileId,
                PasswordSalt          = passwordSalt,
                UserAccountStatusCode = RefUserAccountStatusCode.Guest
            });
            await _unitOfWork.CommitAsync();

            return(true);
        }
예제 #13
0
        /// <summary>
        /// Searches the user.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns></returns>
        public async Task <List <UserSearchViewModel> > SearchUser(UserSearchModel model)
        {
            const string defaultSort = "Name ASC";
            var          sortType    = model.IsSortDesc ? "DESC" : "ASC";
            var          sortField   = ValidateUtils.IsNullOrEmpty(model.SortField)
                ? defaultSort
                : $"{model.SortField} {sortType}";
            var query = _userProfileRepository.GetManyAsNoTracking(x =>
                                                                   ValidateUtils.IsNullOrEmpty(model.Name) ||
                                                                   x.FirstName.ToUpper().Contains(model.Name.ToUpper()) &&
                                                                   ValidateUtils.IsNullOrEmpty(model.Name) ||
                                                                   x.LastName.ToUpper().Contains(model.Name.ToUpper()) &&
                                                                   ValidateUtils.IsNullOrEmpty(model.Phone) ||
                                                                   x.Phone.Equals(model.Name) &&
                                                                   ValidateUtils.IsNullOrEmpty(model.Email) ||
                                                                   x.Email.ToUpper().Contains(model.Email.ToUpper()))
                        .Select(x => new UserSearchViewModel
            {
                Address = x.Address,
                UserId  = x.UserProfileId,
                Email   = x.Email,
                Name    = $"{x.FirstName} {x.LastName}"
            });
            var result = query.Skip((model.Page - 1) * model.PageSize)
                         .Take(model.PageSize);

            return(result.ToList());
        }
        public bool Verify(string guid)
        {
            if (string.IsNullOrWhiteSpace(guid))
            {
                return(false);
            }
            // Check 32 chars long
            if (guid.Length != 36)
            {
                return(false);
            }
            // Alpha numeric
            if (!ValidateUtils.IsAlphaNumeric(guid))
            {
                return(false);
            }

            string md5      = guid.Substring(0, 32);
            string checksum = guid.Substring(32, 4);

            string checkMd5           = _hasher.Hash(md5);
            string checksumCalculated = checkMd5.Substring(0, 4);

            if (!checksum.Equals(checksumCalculated))
            {
                return(false);
            }

            return(true);
        }
예제 #15
0
        /// <summary>
        /// Create Client User
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <bool> CreateUser(CreateUserModel model)
        {
            if (!ValidateUtils.IsMail(model.Email))
            {
                throw new FormatException("Email address invalid");
            }
            if (model.Password != model.Repassword)
            {
                throw new FormatException("Wrong Repass");
            }
            var query = _userRepository.GetManyAsNoTracking(x => x.Email.Equals(model.Email));

            if (query.ToList().Count > 0)
            {
                throw new FormatException("Email is existed");
            }
            var user = _userRepository.Insert(new TblUser
            {
                UserId   = Guid.NewGuid(),
                Email    = model.Email,
                Name     = model.UserName,
                Password = model.Password,
                Phone    = model.Phone,
                Role     = false
            });
            await _unitOfWork.CommitAsync();

            return(true);
        }
예제 #16
0
        private void DingYue()
        {
            string queryString = WebUtils.GetQueryString("_mailaddr");

            if (string.IsNullOrEmpty(queryString))
            {
                base.Response.Write("{\"msg\":\"" + base.GetCaption("DingYue_EmailNotEmpty") + "\"}");
            }
            else if (!ValidateUtils.IsEmail(queryString))
            {
                base.Response.Write("{\"msg\":\"" + base.GetCaption("DingYue_EmailIncorrect") + "\"}");
            }
            else
            {
                int num = SinGooCMS.BLL.DingYue.Add(queryString);
                if (num == -1)
                {
                    base.Response.Write("{\"msg\":\"" + base.GetCaption("DingYue_EmailExists") + "\"}");
                }
                else if (num > 0)
                {
                    base.Response.Write("{\"msg\":\"" + base.GetCaption("DingYue_Success") + "\"}");
                }
            }
        }
예제 #17
0
 protected void btnok_Click(object sender, System.EventArgs e)
 {
     if (base.Action.Equals(ActionType.Add.ToString()) && !base.IsAuthorizedOp(ActionType.Add.ToString()))
     {
         base.ShowMsg("Không có thẩm quyền");
     }
     else if (base.Action.Equals(ActionType.Modify.ToString()) && !base.IsAuthorizedOp(ActionType.Modify.ToString()))
     {
         base.ShowMsg("Không có thẩm quyền");
     }
     else
     {
         DingYueInfo dingYueInfo = new DingYueInfo();
         if (base.IsEdit)
         {
             dingYueInfo = SinGooCMS.BLL.DingYue.GetDataById(base.OpID);
         }
         dingYueInfo.UserName  = WebUtils.GetString(this.TextBox1.Text);
         dingYueInfo.Email     = WebUtils.GetString(this.TextBox2.Text);
         dingYueInfo.IsTuiDing = !this.istuiding.Checked;
         if (string.IsNullOrEmpty(dingYueInfo.UserName))
         {
             base.ShowMsg("请输入用户名称");
         }
         if (!ValidateUtils.IsEmail(dingYueInfo.Email))
         {
             base.ShowMsg("请输入有效的邮箱地址");
         }
         else
         {
             if (base.Action.Equals(ActionType.Add.ToString()))
             {
                 dingYueInfo.Lang          = base.cultureLang;
                 dingYueInfo.AutoTimeStamp = System.DateTime.Now;
                 if (SinGooCMS.BLL.DingYue.Add(dingYueInfo) > 0)
                 {
                     PageBase.log.AddEvent(base.LoginAccount.AccountName, "添加订阅邮箱[" + dingYueInfo.Email + "] thành công");
                     MessageUtils.DialogCloseAndParentReload(this);
                 }
                 else
                 {
                     base.ShowMsg("Thao tác thất bại");
                 }
             }
             if (base.Action.Equals(ActionType.Modify.ToString()))
             {
                 if (SinGooCMS.BLL.DingYue.Update(dingYueInfo))
                 {
                     PageBase.log.AddEvent(base.LoginAccount.AccountName, "修改订阅邮箱[" + dingYueInfo.Email + "] thành công");
                     MessageUtils.DialogCloseAndParentReload(this);
                 }
                 else
                 {
                     base.ShowMsg("Thao tác thất bại");
                 }
             }
         }
     }
 }
예제 #18
0
        public ActionResult ModifyInvestment(string investmentGuid, string name, string description,
                                             double money, string yieldDue, double?gains, string startTime, string endTime, string accountingTime)
        {
            return(ActionUtils.Json(() =>
            {
                ValidateUtils.Name(name, "投资标的");
                CommUtils.AssertHasContent(startTime, "[开始时间]不能为空");
                CommUtils.AssertHasContent(endTime, "[到期时间]不能为空");
                CommUtils.Assert(money <= 1000000000000, "[投资金额]不能大于10,000亿元");
                CommUtils.Assert(money > 0, "[投资金额]必须大于0元");

                var valStartTime = DateTime.Parse(startTime);
                var valEndTime = DateTime.Parse(endTime);
                CommUtils.Assert(DateTime.Compare(valEndTime, valStartTime) > 0, "[到期时间]必须大于[开始时间]");

                var investment = m_dbAdapter.Investment.GetInvestment(investmentGuid);
                investment.Name = name;
                investment.Description = description;
                investment.Money = money;
                investment.StartTime = valStartTime;
                investment.EndTime = valEndTime;
                investment.YieldDue = null;

                if (investment.Gains.HasValue)
                {
                    CommUtils.AssertNotNull(gains, "[收益金额]不能为空");
                    CommUtils.AssertHasContent(accountingTime, "[到账时间]不能为空");
                    CommUtils.Assert(gains <= 1000000000000, "[收益金额]不能大于10,000亿元");
                    CommUtils.Assert(gains >= -1000000000000, "[收益金额]不能小于-10,000亿元");
                    CommUtils.Assert(!(gains <0 && System.Math.Abs(gains.Value)> investment.Money), "[收益金额]不能亏损超过[投资金额]");

                    var valAccountingTime = DateTime.Parse(accountingTime);
                    CommUtils.Assert(DateTime.Compare(valAccountingTime, valEndTime) >= 0, "[到账时间]不能小于[到期时间]");

                    investment.AccountingTime = valAccountingTime;
                    investment.Gains = gains;
                    investment.Yield = InterestRateUtils.CalculateYield(investment.Gains.Value, investment.Money, investment.EndTime, investment.StartTime);
                }

                if (!string.IsNullOrWhiteSpace(yieldDue) && yieldDue != "-")
                {
                    var percentValue = 0.0;
                    if (yieldDue.Contains('%'))
                    {
                        CommUtils.Assert(double.TryParse(yieldDue.Substring(0, yieldDue.Length - 1), out percentValue), "预计收益率必须为数字");
                    }
                    else
                    {
                        CommUtils.Assert(double.TryParse(yieldDue, out percentValue), "预计收益率必须为数字");
                    }
                    CommUtils.Assert(percentValue >= 365.00 * (-1) / (valEndTime - valStartTime).TotalDays, "预计收益率过低,请重新填写");
                    investment.YieldDue = percentValue / 100;
                }

                var result = m_dbAdapter.Investment.UpdateInvestment(investment);
                return ActionUtils.Success(result);
            }));
        }
예제 #19
0
        public virtual ValidsPack ValidateEvaluateIntent(TargetItem evalTarget, Period evalPeriod, IPeriodProfile evalProfile, IEnumerable <ResultPair> evalResults)
        {
            ValidsPack validParameters = ValidationOfParameters(evalTarget, evalPeriod, evalProfile, evalResults);

            if (validParameters.IsFailure)
            {
                return(validParameters);
            }
            return(ValidateUtils.Ok());
        }
예제 #20
0
 protected void btnok_Click(object sender, System.EventArgs e)
 {
     if (!base.IsAuthorizedOp("Reply"))
     {
         base.ShowMsg("Không có thẩm quyền");
     }
     else
     {
         string text = base.Server.HtmlEncode(this.txtReply.Text);
         if (string.IsNullOrEmpty(text))
         {
             base.ShowMsg("请输入回复内容");
         }
         else
         {
             FeedbackInfo dataById = SinGooCMS.BLL.Feedback.GetDataById(base.OpID);
             dataById.Replier      = base.LoginAccount.AccountName;
             dataById.ReplyContent = text;
             dataById.ReplyDate    = System.DateTime.Now;
             if (SinGooCMS.BLL.Feedback.Update(dataById))
             {
                 string @string     = WebUtils.GetString(this.txtMail.Text);
                 string strMailBody = string.Concat(new string[]
                 {
                     "来自管理员的回复:<br/><div style='border-bottom:1px solid #ccc'>",
                     text,
                     "</div><br/>",
                     PageBase.config.SiteName,
                     "(",
                     PageBase.config.SiteDomain,
                     ")"
                 });
                 string empty = string.Empty;
                 if (this.chkReply2Mail.Checked && ValidateUtils.IsEmail(@string))
                 {
                     MsgService.SendMail(@string, "来自管理员的回复", strMailBody, out empty);
                 }
                 if (!string.IsNullOrEmpty(empty) && "success" != empty)
                 {
                     base.ShowMsg(empty);
                     PageBase.log.AddEvent(base.LoginAccount.AccountName, "回复留言[" + this.feedback.Title + "] thành công,但发送邮件失败");
                 }
                 else
                 {
                     PageBase.log.AddEvent(base.LoginAccount.AccountName, "回复留言[" + dataById.Title + "] thành công");
                     MessageUtils.DialogCloseAndParentReload(this);
                 }
             }
             else
             {
                 base.ShowMsg("回复留言失败");
             }
         }
     }
 }
예제 #21
0
        public ActionResult NewAgenda(string projectGuid, string agendaName, string description, string startTime, string endTime)
        {
            return(ActionUtils.Json(() =>
            {
                CheckPermission(projectGuid);

                ValidateUtils.Name(agendaName, "日程名称");
                ValidateUtils.Description(description, "日程描述");

                CommUtils.Assert(!((string.IsNullOrWhiteSpace(startTime) || startTime == "-") &&
                                   (string.IsNullOrWhiteSpace(endTime) || endTime == "-")), "开始时间和结束时间不能同时为空");

                CommUtils.Assert(DateUtils.IsNullableDate(startTime), "开始时间必须为[YYYY-MM-DD]格式或者为空");
                CommUtils.Assert(DateUtils.IsNullableDate(endTime), "结束时间必须为[YYYY-MM-DD]格式或者为空");

                var taskStartTime = DateUtils.Parse(startTime);
                var taskEndTime = DateUtils.Parse(endTime);
                if (taskStartTime != null && taskEndTime != null)
                {
                    CommUtils.Assert(taskEndTime.Value >= taskStartTime.Value,
                                     "开始时间[{0}]不能大于结束时间[{1}]", startTime, endTime);
                }

                var project = m_dbAdapter.Project.GetProjectByGuid(projectGuid);
                CommUtils.Assert(project.ProjectSeriesId.HasValue, "找不到ProjectSeries[projectGuid={0}]信息", projectGuid);

                var agenda = new Agenda();
                agenda.CreateUserName = CurrentUserName;
                agenda.Name = agendaName;
                agenda.Description = description;
                CommUtils.Assert(!(startTime == "" && endTime == ""), "开始和结束时间必须至少有一个不为空!");
                if (startTime == "" && endTime != "")
                {
                    agenda.EndTime = Convert.ToDateTime(endTime);
                    agenda.StartTime = Convert.ToDateTime(agenda.EndTime.ToShortDateString() + " 00:00:00");
                }
                else if (startTime != "" && endTime == "")
                {
                    agenda.StartTime = Convert.ToDateTime(startTime);
                    agenda.EndTime = Convert.ToDateTime(agenda.StartTime.ToShortDateString() + " 23:59:59");
                }
                else
                {
                    agenda.StartTime = Convert.ToDateTime(startTime);
                    agenda.EndTime = Convert.ToDateTime(endTime);
                }
                agenda.ProjectId = project.ProjectId;
                m_dbAdapter.Agenda.NewAgenda(agenda);

                var logicModel = Platform.GetProject(project.ProjectGuid);
                logicModel.Activity.Add(project.ProjectId, ActivityObjectType.Agenda, agenda.Guid, "创建日程:" + agenda.Name);

                return ActionUtils.Success(1);
            }));
        }
예제 #22
0
        public string ValidateAddBillProduct(string data)
        {
            string rs  = null;
            var    vld = new ValidateUtils();

            if (string.IsNullOrEmpty(data))
            {
                return(SystemMessageConst.systemmessage.NoData);
            }
            return(null);
        }
예제 #23
0
        private void Col_DtEmissaoFechamento_Validating(object sender, CancelEventArgs e)
        {
            var controle = ((DataGridViewTextBoxEditingControl)sender);

            // ValidateUtils é uma classe estática utilizada para validação
            if (!string.IsNullOrEmpty(controle.Text) && !ValidateUtils.isDate(controle.Text))
            {
                controle.Clear();
                e.Cancel = true;
                MessageBox.Show("Data inválida.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #24
0
        public string ValidateCustomer(tbl_LoaiSP customer)
        {
            string rs  = null;
            var    vld = new ValidateUtils();

            rs = vld.CheckRequiredField(customer.category_name, "Tên loại sản phẩm", 1, 50);
            if (rs != null)
            {
                return(rs);
            }
            return(null);
        }
예제 #25
0
        public string ValidateCustomer(tbl_Unit customer)
        {
            string rs  = null;
            var    vld = new ValidateUtils();

            rs = vld.CheckRequiredField(customer.unit_name, "Tên đơn vị", 1, 50);
            if (rs != null)
            {
                return(rs);
            }
            return(null);
        }
예제 #26
0
        public string ValidateUser(User user, bool checkPass = true)
        {
            string rs  = null;
            var    vld = new ValidateUtils();

            if (user.isusingaccount == true)
            {
                rs = vld.CheckRequiredField(user.UserName, "Tên đăng nhập", 3, 30);
                if (rs != null)
                {
                    return(rs);
                }
                if (checkPass)
                {
                    rs = vld.CheckRequiredField(user.Password, "Mật khẩu đăng nhập", 3, 25);
                    if (rs != null)
                    {
                        return(rs);
                    }
                }
            }
            rs = vld.CheckRequiredField(user.FullName, "Họ và tên", 3, 50);
            if (rs != null)
            {
                return(rs);
            }
            rs = vld.CheckNonRequiredField(user.Email, "Email", 100);
            if (rs != null)
            {
                return(rs);
            }

            if (!string.IsNullOrEmpty(user.Email))
            {
                rs = vld.CheckEmail(user.Email);
                if (rs != null)
                {
                    return(rs);
                }
            }

            rs = vld.CheckNonRequiredField(user.Phone, "Số điện thoại", 11);
            if (rs != null)
            {
                return(rs);
            }
            rs = vld.CheckRequiredField(user.UserCode, "Mã nhân viên", 5, 20);
            if (rs != null)
            {
                return(rs);
            }
            return(null);
        }
예제 #27
0
        public string ShowPreview(string strFileName, string strThumb)
        {
            string result;

            if (ValidateUtils.IsImage(strFileName))
            {
                result = string.Concat(new string[]
                {
                    "<img class='thumb' data-original='",
                    strFileName,
                    "' src='",
                    strThumb,
                    "' alt='' />"
                });
            }
            else
            {
                string text  = System.IO.Path.GetExtension(strFileName).ToLower();
                string text2 = text;
                if (text2 != null)
                {
                    if (text2 == ".doc")
                    {
                        result = "<img class='thumb' data-original='../images/imgico/doc.png' src='../images/imgico/doc.png' alt='' />";
                        return(result);
                    }
                    if (text2 == ".pdf")
                    {
                        result = "<img class='thumb' data-original='../images/imgico/pdf.png' src='../images/imgico/pdf.png' alt='' />";
                        return(result);
                    }
                    if (text2 == ".rar")
                    {
                        result = "<img class='thumb' data-original='../images/imgico/rar.png' src='../images/imgico/rar.png' alt='' />";
                        return(result);
                    }
                    if (text2 == ".zip")
                    {
                        result = "<img class='thumb' data-original='../images/imgico/zip.png' src='../images/imgico/zip.png' alt='' />";
                        return(result);
                    }
                    if (text2 == ".txt")
                    {
                        result = "<img class='thumb' data-original='../images/imgico/txt.png' src='../images/imgico/txt.png' alt='' />";
                        return(result);
                    }
                }
                result = "<img class='thumb' data-original='../images/imgico/file.png' src='../images/imgico/file.png' alt='' />";
            }
            return(result);
        }
예제 #28
0
        /// <summary>
        /// Searches the company.
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="model">The model.</param>
        /// <returns></returns>
        /// <exception cref="UnauthorizedUser"></exception>
        public async Task <List <CompanyViewSearchModel> > SearchCompany(string userId, CompanySearchModel model)
        {
            if (ValidateUtils.IsNullOrEmpty(userId))
            {
                throw new UnauthorizedUser();
            }
            const string defaultSort = "CompanyName ASC";
            var          sortType    = model.IsSortDesc ? "DESC" : "ASC";
            var          sortField   = ValidateUtils.IsNullOrEmpty(model.SortField)
                ? defaultSort
                : $"{model.SortField} {sortType}";
            var query = _companyRepository.GetManyAsNoTracking(x =>
                                                               (ValidateUtils.IsNullOrEmpty(model.CompanyName) ||
                                                                x.CompanyName.ToUpper().Contains(model.CompanyName.ToUpper()))
                                                               ).Join(_shareholderRepository.GetManyAsNoTracking(x => x.UserProfileId == Guid.Parse(userId))
                                                                      , x => x.CompanyId, y => y.CompanyId, (x, y) => new
            {
                x.Address,
                x.Phone,
                x.Capital,
                x.CompanyId,
                x.AdminProfileId,
                x.CompanyName,
                x.CompanyDescription,
                x.OptionPollAmount,
                x.TotalShares,
                x.Categories,
                x.PhotoUrl
            }).Join(_userRepository.GetAll(),
                    x => x.AdminProfileId, y => y.UserProfileId, (x, y) => new CompanyViewSearchModel
            {
                Address            = x.Address,
                Phone              = x.Phone,
                Capital            = x.Capital,
                CompanyId          = x.CompanyId,
                AdminProfileId     = x.AdminProfileId,
                CompanyName        = x.CompanyName,
                CompanyDescription = x.CompanyDescription,
                OptionPollAmount   = x.OptionPollAmount,
                TotalShares        = x.TotalShares,
                AdminName          = $"{y.FirstName} {y.LastName}",
                Categories         = x.Categories,
                PhotoUrl           = x.PhotoUrl
            })
                        .OrderBy(sortField);
            var result = query.Skip((model.Page - 1) * model.PageSize)
                         .Take(model.PageSize);

            return(result.ToList());
        }
예제 #29
0
        /// <summary>
        /// 获得指定表单参数的值
        /// </summary>
        /// <param name="strName">表单参数</param>
        /// <param name="sqlSafeCheck">是否进行SQL安全检查</param>
        /// <returns>表单参数的值</returns>
        public static string GetFormString(string strName, bool sqlSafeCheck)
        {
            if (HttpContext.Current.Request.Form[strName] == null)
            {
                return("");
            }

            if (sqlSafeCheck && !ValidateUtils.IsSafeSqlString(HttpContext.Current.Request.Form[strName]))
            {
                return("unsafe string");
            }

            return(HttpContext.Current.Request.Form[strName]);
        }
예제 #30
0
 private void txtDtNascimento_Validating(object sender, CancelEventArgs e)
 {
     if (!string.IsNullOrEmpty(((MaskedTextBox)sender).Text))
     {
         ((MaskedTextBox)sender).TextMaskFormat = MaskFormat.IncludePromptAndLiterals;
         if (!ValidateUtils.isDate(((MaskedTextBox)sender).Text))
         {
             MessageBox.Show("Data inválida.", Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
             ((MaskedTextBox)sender).Text = string.Empty;
             e.Cancel = true;
         }
         ((MaskedTextBox)sender).TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;
     }
 }