//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; }
/// <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(); }
/// <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 }); } }
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) { }
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; }
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; }
/// <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) { }
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; }
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) { }
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; }
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) { }
public IngredientCategoryOperations(IMainGenericDb <IngredientCategory> repo, IExistElement existElement, IAgroSearch search, ICommonDbOperations <IngredientCategory> commonDb, IValidator validators) : base(repo, existElement, search, commonDb, validators) { }
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; }