Exemplo n.º 1
0
        //TODO: Deprecar
        /// <summary>
        /// Crea elemento en la base de datos y crea un contenedor con la respuesta de acuerdo al resultado de la operación.
        /// </summary>
        /// <typeparam name="T">Tipo del elemento a crear</typeparam>
        /// <param name="store">Store de elementos a consultar</param>
        /// <param name="elementToSave">función que guarda el elemento en la base de datos</param>
        /// <param name="alreadyExists">función que comprueba si elemento ya existe</param>
        /// <param name="messageAlreadyExists">mensaje si el elemento ya existe</param>
        /// <returns>Contenedor con el id del elemento creado o el error del resultado</returns>
        public static async Task <ExtPostContainer <string> > CreateElement <T>(ICommonDbOperations <T> dbOper, IQueryable <T> store, Func <string, Task <string> > elementToSave, Expression <Func <T, bool> > alreadyExists, string messageAlreadyExists) where T : DocumentBase
        {
            try
            {
                string idAlreadyExist = await AlreadyExist(dbOper, store, alreadyExists);

                if (idAlreadyExist != null)
                {
                    return(new ExtPostErrorContainer <string>
                    {
                        Message = messageAlreadyExists,
                        MessageResult = ExtMessageResult.ElementAlreadyExists,
                        IdRelated = idAlreadyExist
                    });
                }

                string idResult = await elementToSave(Guid.NewGuid().ToString("N"));

                return(new ExtPostContainer <string>
                {
                    IdRelated = idResult,
                    Result = idResult,
                    MessageResult = ExtMessageResult.Ok
                });
            }
            catch (Exception ex)
            {
                return(new ExtPostErrorContainer <string>
                {
                    InternalException = ex,
                    Message = ex.Message,
                    MessageResult = ExtMessageResult.Error
                });
            }
        }
 public MainOperation(IMainGenericDb <T> repo, IExistElement existElement, IAgroSearch search, ICommonDbOperations <T> commonDb, IValidator validator)
 {
     this.repo         = repo;
     this.existElement = existElement;
     this.search       = search;
     this.commonDb     = commonDb;
     this.validator    = validator;
 }
Exemplo n.º 3
0
        /// <summary>
        /// Constructor de la clase
        /// </summary>
        /// <param name="repo">Repositorio de base de datos de la entidad a operar, por ejemplo producto</param>
        /// <param name="search">repositorio de base de datos de busqueda bajo el modelo de entitySearch</param>
        /// <param name="commonDb">operaciones de conversión de IQueriable a listas</param>
        /// <param name="validator">Validador de entidades input</param>
        public MainOperation(IMainGenericDb <T> repo, IAgroSearch <T_GEO> search, ICommonDbOperations <T> commonDb, IValidatorAttributes <T_INPUT> validator)
        {
            this.repo = repo;

            this.search       = search;
            this.commonDb     = commonDb;
            this.valida       = validator;
            this.existElement = validator.GetExistElement();
        }
Exemplo n.º 4
0
        /// <summary>
        /// Metodo estático que permite editar un elemento y enviar los mensajes que correspondan de acuerdo al resultado de la operación.
        /// </summary>
        /// <typeparam name="T">Tipo de entidad a editar</typeparam>
        /// <param name="idElementToEdit">identificador del elemento a editar</param>
        /// <param name="elementToEdit">elemento a editar, sin cambios</param>
        /// <param name="transform">Operación que permitirá cambiar los campos</param>
        /// <param name="actionEdit">acción que editará el elemento en la base de datos</param>
        /// <param name="noExistsMessage">mensaje personalizado en caso de no existir el elemento</param>
        /// <returns>Contenedor con el elemento a editar</returns>
        public static async Task <ExtPostContainer <T> > EditElement <T>(ICommonDbOperations <T> dbOper, IQueryable <T> store, string idElementToEdit, T elementToEdit, Func <T, T> transform, Func <T, Task> actionEdit, string noExistsMessage, Expression <Func <T, bool> > alreadyExists, string messageAlreadyExists) where T : DocumentBase
        {
            try
            {
                string idAlreadyExist = await AlreadyExist(dbOper, store, alreadyExists);

                if (idAlreadyExist != null)
                {
                    return(new ExtPostErrorContainer <T>
                    {
                        Message = messageAlreadyExists,
                        MessageResult = ExtMessageResult.ElementAlreadyExists,
                        IdRelated = idAlreadyExist
                    });
                }

                if (elementToEdit == null)
                {
                    return(new ExtPostErrorContainer <T>
                    {
                        Message = noExistsMessage,
                        MessageResult = ExtMessageResult.ElementToEditDoesNotExists,
                        IdRelated = idElementToEdit
                    });
                }
                var elementToSave = transform(elementToEdit);

                await actionEdit(elementToSave);

                return(new ExtPostContainer <T>
                {
                    Result = elementToSave,
                    IdRelated = idElementToEdit,
                    MessageResult = ExtMessageResult.Ok
                });
            }
            catch (Exception ex)
            {
                return(new ExtPostErrorContainer <T>
                {
                    IdRelated = idElementToEdit,
                    MessageResult = ExtMessageResult.Error,
                    Message = ex.Message,
                    InternalException = ex
                });
            }
        }
Exemplo n.º 5
0
        public static async Task <string> AlreadyExist <T>(ICommonDbOperations <T> dbOper, IQueryable <T> store, Expression <Func <T, bool> > alreadyExists) where T : DocumentBase
        {
            var element = await dbOper.FirstOrDefaultAsync(store, alreadyExists);

            return(element?.Id);
        }
 public PlotLandOperations(IMainGenericDb <PlotLand> repo, IExistElement existElement, IAgroSearch search, ICommonDbOperations <PlotLand> commonDb, IValidator validators) : base(repo, existElement, search, commonDb, validators)
 {
 }
 public ApplicationTargetOperations(IMainGenericDb <ApplicationTarget> repo, IExistElement existElement, IAgroSearch search, ICommonDbOperations <ApplicationTarget> commonDb, IValidator validators) : base(repo, existElement, search, commonDb, validators)
 {
 }
 public ApplicationOrderOperations(IMainGenericDb <ApplicationOrder> repo, IAgroSearch <T> search, ICommonAgroQueries commonQueries, ICommonDbOperations <ApplicationOrder> commonDb, IValidatorAttributes <ApplicationOrderInput> validator) : base(repo, search, commonDb, validator)
 {
 }
 public CommentOperation(IMainGenericDb <Comment> repo, IExistElement existElement, IAgroSearch search, ICommonDbOperations <Comment> commonDb, IValidator validators) : base(repo, existElement, search, commonDb, validators)
 {
 }
Exemplo n.º 10
0
 public UserOperations(IMainGenericDb <UserApplicator> repo, IAgroSearch <T> search, IGraphApi graphApi, ICommonDbOperations <UserApplicator> commonDb, IValidatorAttributes <UserApplicatorInput> validator) : base(repo, search, commonDb, validator)
 {
     this.graphApi = graphApi;
 }
 public NotificationEventOperations(IMainGenericDb <NotificationEvent> repo, IExistElement existElement, IAgroSearch search, ICommonQueries commonQueries, IEmail email, IUploadImage uploadImage, IWeatherApi weather, ICommonDbOperations <NotificationEvent> commonDb, IValidator validators) : base(repo, existElement, search, commonDb, validators)
 {
     this.commonQueries = commonQueries;
     this.email         = email;
     this.uploadImage   = uploadImage;
     this.weather       = weather;
 }
Exemplo n.º 12
0
 public CertifiedEntityOperations(IMainGenericDb <CertifiedEntity> repo, IExistElement existElement, IAgroSearch search, ICommonDbOperations <CertifiedEntity> commonDb, IValidator validators) : base(repo, existElement, search, commonDb, validators)
 {
 }
 public ProductOperations(IMainGenericDb <Product> repo, IExistElement existElement, IAgroSearch search, IGenericOperation <Dose, DosesInput> dosesOperation, ICommonDbOperations <Product> commonDb, ICommonQueries queries, IValidator validators) : base(repo, existElement, search, commonDb, validators)
 {
     this.dosesOperation = dosesOperation;
     this.queries        = queries;
 }
 public UserActivityOperations(IMainGenericDb <UserActivity> repo, IAgroSearch <T> search, ICommonDbOperations <UserActivity> commonDb, string userId, IValidatorAttributes <UserActivityInput> validator) : base(repo, search, commonDb, validator)
 {
     UserId = userId;
 }
 public UserActivityOperations(IMainGenericDb <UserActivity> repo, IExistElement existElement, IAgroSearch search, ICommonDbOperations <UserActivity> commonDb, string userId, IValidator validator) : base(repo, existElement, search, commonDb, validator)
 {
     UserId = userId;
 }
Exemplo n.º 16
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="repo">repositorio de base de datos de productos</param>
 /// <param name="search">operaciones en base de datos de busqueda basadas en entitySearch</param>
 /// <param name="dosesOperation">Operaciones de dosis</param>
 /// <param name="commonDb">convierte IQueryable en listas</param>
 /// <param name="queries">consultas a agro</param>
 /// <param name="validator">Validador de elementos</param>
 public ProductOperations(IMainGenericDb <Product> repo, IAgroSearch <T> search, IGenericOperation <Dose, DosesInput> dosesOperation, ICommonDbOperations <Product> commonDb, ICommonAgroQueries queries, IValidatorAttributes <ProductInput> validator) : base(repo, search, commonDb, validator)
 {
     this.dosesOperation = dosesOperation;
     this.queries        = queries;
 }
 public ExecutionOrderStatusOperations(IMainGenericDb <ExecutionOrderStatus> repo, IAgroSearch <T> search, ICommonDbOperations <ExecutionOrderStatus> commonDb, IValidatorAttributes <ExecutionOrderStatusInput> validator) : base(repo, search, commonDb, validator)
 {
 }
 public SeasonOperations(IMainGenericDb <Season> repo, IExistElement existElement, IAgroSearch search, ICommonDbOperations <Season> commonDb, IValidator validators) : base(repo, existElement, search, commonDb, validators)
 {
 }
Exemplo n.º 19
0
 public ExecutionOrderStatusOperations(IMainGenericDb <ExecutionOrderStatus> repo, IExistElement existElement, IAgroSearch search, ICommonDbOperations <ExecutionOrderStatus> commonDb, IValidator validators) : base(repo, existElement, search, commonDb, validators)
 {
 }
 public BusinessNameOperations(IMainGenericDb <BusinessName> repo, IExistElement existElement, IAgroSearch search, ICommonDbOperations <BusinessName> commonDb, IValidator validators) : base(repo, existElement, search, commonDb, validators)
 {
 }
 public BarrackOperations(IMainGenericDb <Barrack> repo, IAgroSearch <T> search, ICommonAgroQueries commonQueries, ICommonDbOperations <Barrack> commonDb, IValidatorAttributes <BarrackInput> validator) : base(repo, search, commonDb, validator)
 {
     this.commonQueries = commonQueries;
 }
 public DosesOperations(IMainGenericDb <Dose> repo, IExistElement existElement, IAgroSearch search, ICommonDbOperations <Dose> commonDb, ICounters counters, ICommonQueries queries, IValidator validators) : base(repo, existElement, search, commonDb, validators)
 {
     Counters = counters;
     Queries  = queries;
 }
Exemplo n.º 23
0
 public PreOrdersOperations(IMainGenericDb <PreOrder> repo, IExistElement existElement, IAgroSearch search, ICommonQueries commonQueries, ICommonDbOperations <PreOrder> commonDb, IValidator validators) : base(repo, existElement, search, commonDb, validators)
 {
     this.commonQueries = commonQueries;
 }
 public RootstockOperations(IMainGenericDb <Rootstock> repo, IExistElement existElement, IAgroSearch search, ICommonDbOperations <Rootstock> commonDb, IValidator validators) : base(repo, existElement, search, commonDb, validators)
 {
 }
Exemplo n.º 25
0
 public DosesOperations(IDbExistsElements existsElement, IMainGenericDb <Dose> repo, IAgroSearch <T> search, ICommonDbOperations <Dose> commonDb, ICommonAgroQueries queries, IValidatorAttributes <DosesInput> validator) : base(repo, search, commonDb, validator)
 {
     this.existsElement = existsElement;
     Queries            = queries;
 }
 public NotificationEventOperations(IMainGenericDb <NotificationEvent> repo, IAgroSearch <T> search, ICommonAgroQueries commonQueries, IEmail email, IUploadImage uploadImage, IWeatherApi weather, ICommonDbOperations <NotificationEvent> commonDb, IValidatorAttributes <NotificationEventInput> validator) : base(repo, search, commonDb, validator)
 {
     this.commonQueries = commonQueries;
     this.email         = email;
     this.uploadImage   = uploadImage;
     this.weather       = weather;
 }
Exemplo n.º 27
0
 public PreOrdersOperations(IMainGenericDb <PreOrder> repo, IAgroSearch <T> search, ICommonAgroQueries commonQueries, ICommonDbOperations <PreOrder> commonDb, IValidatorAttributes <PreOrderInput> validator) : base(repo, search, commonDb, validator)
 {
     this.commonQueries = commonQueries;
 }
 public NebulizerOperations(IMainGenericDb <Nebulizer> repo, IExistElement existElement, IAgroSearch search, ICommonDbOperations <Nebulizer> commonDb, IValidator validators) : base(repo, existElement, search, commonDb, validators)
 {
 }
Exemplo n.º 29
0
 public IngredientCategoryOperations(IMainGenericDb <IngredientCategory> repo, IExistElement existElement, IAgroSearch search, ICommonDbOperations <IngredientCategory> commonDb, IValidator validators) : base(repo, existElement, search, commonDb, validators)
 {
 }
Exemplo n.º 30
0
 public UserOperations(IMainGenericDb <UserApplicator> repo, IExistElement existElement, IAgroSearch search, IGraphApi graphApi, ICommonDbOperations <UserApplicator> commonDb, IValidator validators) : base(repo, existElement, search, commonDb, validators)
 {
     this.graphApi = graphApi;
 }