public override async Task <ExtPostContainer <string> > SaveInput(BarrackInput input)
        {
            await Validate(input);

            var id      = !string.IsNullOrWhiteSpace(input.Id) ? input.Id : Guid.NewGuid().ToString("N");
            var barrack = new Barrack {
                Id             = id,
                Name           = input.Name,
                Hectares       = input.Hectares,
                IdPlotLand     = input.IdPlotLand,
                IdPollinator   = input.IdPollinator,
                IdRootstock    = input.IdRootstock,
                IdVariety      = input.IdVariety,
                NumberOfPlants = input.NumberOfPlants,
                PlantingYear   = input.PlantingYear,
                SeasonId       = input.SeasonId
            };

            //GeoBarracks, dependencia de geospacial
            #if !CONNECT
            if (input.GeographicalPoints != null && input.GeographicalPoints.Any())
            {
                barrack.GeographicalPoints = input.GeographicalPoints.Select(geoPoint => new Point(geoPoint.Lng, geoPoint.Lat)).ToArray();
            }
            #endif

            search.DeleteElementsWithRelatedElement(EntityRelated.GEOPOINT, EntityRelated.BARRACK, barrack.Id);


            await SaveDb(barrack);

            return(await SaveSearch(barrack));
        }
예제 #2
0
        public override async Task Validate(BarrackInput input)
        {
            await base.Validate(input);

            var season = await Queries.GetSeasonStatus(input.IdSeason);

            var seasonStatus = bool.Parse(season);

            if (!seasonStatus)
            {
                throw new CustomException("La temporada ingresada no se encuentra activa");
            }
        }