示例#1
0
        public ErpUser GetUser(string email, string password)
        {
            var encryptedPassword = PasswordUtil.GetMd5Hash(password);
            var result            = new EqlCommand("SELECT *, $user_role.* FROM user WHERE email = @email AND password = @password",
                                                   new List <EqlParameter> {
                new EqlParameter("email", email), new EqlParameter("password", encryptedPassword)
            }).Execute();

            if (result.Count != 1)
            {
                return(null);
            }

            return(result[0].MapTo <ErpUser>());
        }
		public ErpUser GetUser(string email, string password)
		{
			if (string.IsNullOrWhiteSpace(email))
				return null; 

			var encryptedPassword = PasswordUtil.GetMd5Hash(password);
			var result = new EqlCommand("SELECT *, $user_role.* FROM user WHERE email ~* @email AND password = @password",
					 new List<EqlParameter> { new EqlParameter("email", email), new EqlParameter("password", encryptedPassword) }).Execute();

			foreach(var rec in result)
			{
				if (((string)rec["email"]).ToLowerInvariant() == email.ToLowerInvariant())
					return rec.MapTo<ErpUser>();
			}
			
				return null;
		}
示例#3
0
        private void btnLogin_Click(object sender, EventArgs e)
        {
            AuthenService authenService = new AuthenService();
            string        username      = txtUsername.Text;
            string        password      = PasswordUtil.GetMd5Hash(txtPassword.Text);
            UserDataTable userDataTable = authenService.GetUsersForLogin(this.userTableAdapter, username, password);

            if (userDataTable.Count == 0)
            {
                MessageBox.Show("Tên đăng nhập hoặc Mật khẩu không đúng. Xin vui lòng thử lại.", "Lỗi đăng nhập",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                UserPrivilegeDataTable upTable = authenService.LoadUserPrivileges(this.userPrivilegeTableAdapter, userDataTable[0].UserId);
                authenService.SetAuthenticatedUser(userDataTable[0], upTable);
                this.Close();

                showCurrentForm();
            }
        }
示例#4
0
        private object ExtractFieldValue(KeyValuePair <string, object>?fieldValue, Field field, bool encryptPasswordFields = false)
        {
            if (fieldValue != null && fieldValue.Value.Key != null)
            {
                var pair = fieldValue.Value;

                if (field is AutoNumberField)
                {
                    if (pair.Value == null)
                    {
                        return(null);
                    }
                    if (pair.Value is string)
                    {
                        return(decimal.Parse(pair.Value as string));
                    }

                    return(Convert.ToDecimal(pair.Value));
                }
                else if (field is CheckboxField)
                {
                    return(pair.Value as bool?);
                }
                else if (field is CurrencyField)
                {
                    if (pair.Value == null)
                    {
                        return(null);
                    }
                    if (pair.Value is string)
                    {
                        return(decimal.Parse(pair.Value as string));
                    }

                    return(Convert.ToDecimal(pair.Value));
                }
                else if (field is DateField)
                {
                    if (pair.Value == null)
                    {
                        return(null);
                    }

                    DateTime?date = null;
                    if (pair.Value is string)
                    {
                        date = DateTime.Parse(pair.Value as string);
                    }
                    else
                    {
                        date = pair.Value as DateTime?;
                    }

                    if (date != null)
                    {
                        return(new DateTime(date.Value.Year, date.Value.Month, date.Value.Day, 0, 0, 0, DateTimeKind.Utc));
                    }
                }
                else if (field is DateTimeField)
                {
                    if (pair.Value == null)
                    {
                        return(null);
                    }

                    if (pair.Value is string)
                    {
                        return(DateTime.Parse(pair.Value as string));
                    }

                    return(pair.Value as DateTime?);
                }
                else if (field is EmailField)
                {
                    return(pair.Value as string);
                }
                else if (field is FileField)
                {
                    //TODO convert file path to url path
                    return(pair.Value as string);
                }
                else if (field is ImageField)
                {
                    //TODO convert image path to url path
                    return(pair.Value as string);
                }
                else if (field is HtmlField)
                {
                    return(pair.Value as string);
                }
                else if (field is MultiLineTextField)
                {
                    return(pair.Value as string);
                }
                else if (field is MultiSelectField)
                {
                    if (pair.Value == null)
                    {
                        return(null);
                    }
                    else if (pair.Value is JArray)
                    {
                        return(((JArray)pair.Value).Select(x => ((JToken)x).Value <string>()).ToList <string>());
                    }
                    else if (pair.Value is List <object> )
                    {
                        return(((List <object>)pair.Value).Select(x => ((object)x).ToString()).ToList <string>());
                    }
                    else
                    {
                        return(pair.Value as IEnumerable <string>);
                    }
                }
                else if (field is NumberField)
                {
                    if (pair.Value == null)
                    {
                        return(null);
                    }
                    if (pair.Value is string)
                    {
                        return(decimal.Parse(pair.Value as string));
                    }

                    return(Convert.ToDecimal(pair.Value));
                }
                else if (field is PasswordField)
                {
                    if (encryptPasswordFields)
                    {
                        if (((PasswordField)field).Encrypted == true)
                        {
                            if (string.IsNullOrWhiteSpace(pair.Value as string))
                            {
                                return(null);
                            }

                            return(PasswordUtil.GetMd5Hash(pair.Value as string));
                        }
                    }
                    return(pair.Value);
                }
                else if (field is PercentField)
                {
                    if (pair.Value == null)
                    {
                        return(null);
                    }
                    if (pair.Value is string)
                    {
                        return(decimal.Parse(pair.Value as string));
                    }

                    return(Convert.ToDecimal(pair.Value));
                }
                else if (field is PhoneField)
                {
                    return(pair.Value as string);
                }
                else if (field is GuidField)
                {
                    if (pair.Value is string)
                    {
                        if (string.IsNullOrWhiteSpace(pair.Value as string))
                        {
                            return(null);
                        }

                        return(new Guid(pair.Value as string));
                    }

                    if (pair.Value is Guid)
                    {
                        return((Guid?)pair.Value);
                    }

                    if (pair.Value == null)
                    {
                        return((Guid?)null);
                    }

                    throw new Exception("Invalid Guid field value.");
                }
                else if (field is SelectField)
                {
                    return(pair.Value as string);
                }
                else if (field is TextField)
                {
                    return(pair.Value as string);
                }
                else if (field is UrlField)
                {
                    return(pair.Value as string);
                }
                else if (field is TreeSelectField)
                {
                    if (pair.Value == null)
                    {
                        return(null);
                    }
                    else if (pair.Value is JArray)
                    {
                        return(((JArray)pair.Value).Select(x => new Guid(((JToken)x).Value <string>())).ToList <Guid>());
                    }
                    else if (pair.Value is List <object> )
                    {
                        return(((List <object>)pair.Value).Select(x => ((Guid)x)).ToList <Guid>());
                    }
                    else
                    {
                        return(pair.Value as IEnumerable <Guid>);
                    }
                }
            }
            else
            {
                return(field.GetDefaultValue());
            }

            throw new Exception("System Error. A field type is not supported in field value extraction process.");
        }
示例#5
0
        private void ProcessQueryObject(Entity entity, QueryObject obj)
        {
            if (obj == null)
            {
                return;
            }

            if (obj.QueryType != QueryType.AND && obj.QueryType != QueryType.OR &&
                obj.QueryType != QueryType.RELATED && obj.QueryType != QueryType.NOTRELATED)
            {
                var field = entity.Fields.SingleOrDefault(x => x.Name == obj.FieldName);
                if (!(obj.QueryType == QueryType.RELATED || obj.QueryType == QueryType.NOTRELATED))
                {
                    if (field == null)
                    {
                        throw new Exception(string.Format("There is not entity field '{0}' you try to query by.", obj.FieldName));
                    }
                }

                if (field is NumberField || field is AutoNumberField)
                {
                    if (obj.FieldValue != null)
                    {
                        obj.FieldValue = Convert.ToDecimal(obj.FieldValue);
                    }
                }
                else if (field is GuidField)
                {
                    if (obj.FieldValue != null && obj.FieldValue is string)
                    {
                        var stringGuid = obj.FieldValue as string;
                        if (!string.IsNullOrWhiteSpace(stringGuid))
                        {
                            obj.FieldValue = new Guid(stringGuid);
                        }
                        else
                        {
                            obj.FieldValue = null;
                        }
                    }
                }
                else if (field is CheckboxField)
                {
                    if (obj.FieldValue != null && obj.FieldValue is string)
                    {
                        obj.FieldValue = bool.Parse(obj.FieldValue as string);
                    }
                }
                else if (field is PasswordField && obj.FieldValue != null)
                {
                    obj.FieldValue = PasswordUtil.GetMd5Hash(obj.FieldValue as string);
                }
            }

            if (obj.QueryType == QueryType.RELATED || obj.QueryType == QueryType.NOTRELATED)
            {
                var relation = relationRepository.Read(obj.FieldName);
                if (relation == null)
                {
                    throw new Exception(string.Format("There is not relation with name '{0}' used in your query.", obj.FieldName));
                }

                if (relation.RelationType != EntityRelationType.ManyToMany)
                {
                    throw new Exception(string.Format("Only many to many relations can used in Related and NotRelated query operators.", obj.FieldName));
                }

                var direction = obj.FieldValue as string ?? "origin-target";
                if (relation.OriginEntityId == relation.TargetEntityId)
                {
                    if (direction == "target-origin")
                    {
                        obj.FieldName = $"#{obj.FieldName}_origins";
                    }
                    else
                    {
                        obj.FieldName = $"#{obj.FieldName}_targets";
                    }
                }
                else
                {
                    if (entity.Id == relation.OriginEntityId)
                    {
                        obj.FieldName = $"#{obj.FieldName}_targets";
                    }
                    else
                    {
                        obj.FieldName = $"#{obj.FieldName}_origins";
                    }
                }
            }

            if (obj.QueryType == QueryType.AND || obj.QueryType == QueryType.OR)
            {
                if (obj.SubQueries != null && obj.SubQueries.Count > 0)
                {
                    foreach (var subObj in obj.SubQueries)
                    {
                        ProcessQueryObject(entity, subObj);
                    }
                }
            }
        }
示例#6
0
 private void txtPassword_EditValueChanged(object sender, EventArgs e)
 {
     this.GridView.SetFocusedRowCellValue("Password", PasswordUtil.GetMd5Hash(txtPassword.Text));
 }