Пример #1
0
 public virtual DeleteResponse DeleteCollection(IModelCondition <T> condition)
 {
     try
     {
         return(Mapper.DeleteCollection(condition));
     }
     catch (Exception exception)
     {
         return(new DeleteResponse(exception));
     }
 }
Пример #2
0
 public virtual EntityCollectionResponse <T> RetrieveCollection(IModelCondition <T> condition)
 {
     try
     {
         return(Mapper.RetrieveCollection(condition));
     }
     catch (Exception exception)
     {
         return(new EntityCollectionResponse <T>(exception));
     }
 }
Пример #3
0
        public virtual EntityCollectionResponse <T> RetrieveCollection(IModelCondition <T> condition)
        {
            var columns        = GetColumns();
            var wherecondition = MountWhereFromCondition(condition);
            var query          = $"select * from {typeof(T).Name} {wherecondition}";


            using (var connection = context)
            {
                connection.Open();
                return(new EntityCollectionResponse <T>(connection.Query <T>(query)));
            }
        }
Пример #4
0
        private string MountWhereFromCondition(IModelCondition <T> condition)
        {
            if (condition.IsNull())
            {
                return(string.Empty);
            }

            var properties = condition.GetType().GetProperties();

            if (properties.Length == 0)
            {
                return(string.Empty);
            }

            var sb = new StringBuilder();

            sb.Append("WHERE ");

            foreach (var property in properties)
            {
                if (!property.GetValue(condition).IsNull())
                {
                    if (property.PropertyType.Name.ToLower().Contains("string"))
                    {
                        sb.Append($"{property.Name} = '{property.GetValue(condition)}' AND ");
                    }
                    else if (property.PropertyType.Name.ToLower().Contains("bool"))
                    {
                        sb.Append($"{property.Name} = {Convert.ToInt16(property.GetValue(condition))} AND ");
                    }
                    else
                    {
                        sb.Append($"{property.Name} = {property.GetValue(condition)} AND ");
                    }
                }
            }
            sb.Remove(sb.Length - 4, 4);
            return(sb.ToString());
        }
Пример #5
0
        public virtual EntityResponse <T> RetrieveFirst(IModelCondition <T> condition)
        {
            try
            {
                var response = this.RetrieveCollection(condition);
                if (!response.Success)
                {
                    throw response.Exception;
                }

                if (response.Collection.IsEmpty())
                {
                    throw new DatabaseEntryNotFoundException {
                    }
                }
                ;

                return(new EntityResponse <T>(response.Collection.First()));
            }
            catch (Exception exception)
            {
                return(new EntityResponse <T>(exception));
            }
        }
Пример #6
0
 public virtual EntityCollectionResponse <T> RetrieveCollection(IModelCondition <T> condition)
 {
     return(this.Rule.RetrieveCollection(condition));
 }
Пример #7
0
 public DeleteResponse DeleteCollection(IModelCondition <T> condition)
 {
     throw new NotImplementedException();
 }