コード例 #1
0
        protected async Task SaveSpecimenAsync()
        {
            var isNewSpecimen = Specimen.SpecimenId == 0;

            if (isNewSpecimen)
            {
                Specimen.DateCreated = DateTime.UtcNow;
            }
            else
            {
                Specimen.DateModified = DateTime.UtcNow;
            }

            if (SelectedLifeform != null)
            {
                Specimen.Lifeform = SelectedLifeform.LifeformId > 0 ? SelectedLifeform : null;
            }

            PopulateInventoryItemName();

            Specimen.InventoryItem.Origin   = SelectedOrigin;
            Specimen.InventoryItem.Name     = Specimen.Name;
            Specimen.InventoryItem.Quantity = Specimen.Quantity;
            Specimen.Photos = UploadedPhotos.Any() ? UploadedPhotos : null;

            Specimen = await ApiClient.PutSpecimenAsync(Specimen);

            if (BlazoredModal != null)
            {
                await BlazoredModal.Close(ModalResult.Ok(Specimen));
            }
            else
            {
                await CancelAsync(isNewSpecimen);
            }
        }
コード例 #2
0
        protected async Task SaveActivityAsync()
        {
            var isNewActivity = Activity.ActivityId == 0;

            if (isNewActivity)
            {
                Activity.DateCreated = DateTime.UtcNow;
            }
            else
            {
                Activity.DateModified = DateTime.UtcNow;
            }

            if (string.IsNullOrEmpty(Activity.Name))
            {
                PopulateActivityName();
            }

            Activity.Photos = UploadedPhotos.Any() ? UploadedPhotos : null;

            if (SelectedSpecimen != null)
            {
                Activity.Specimen = SelectedSpecimen;
            }

            if (UpdateSpecimen && Activity.Quantity.HasValue)
            {
                var stage = GetSpecimenStage(Activity.ActivityType);

                if (Activity.Quantity == SelectedSpecimen.InventoryItem.Quantity)
                {
                    SelectedSpecimen.SpecimenStage = stage;
                }
                else
                {
                    var newSpecimen = new Specimen
                    {
                        SpecimenStage = stage,
                        Lifeform      = SelectedSpecimen.Lifeform,
                        InventoryItem = new InventoryItem
                        {
                            Name         = SelectedSpecimen.InventoryItem.Name,
                            ItemType     = ItemType.Specimen,
                            Quantity     = Activity.Quantity.Value,
                            Status       = SelectedSpecimen.InventoryItem.Status,
                            Inventory    = SelectedSpecimen.InventoryItem.Inventory,
                            Origin       = SelectedSpecimen.InventoryItem.Origin,
                            DateAcquired = Activity.DateOccurred,
                            DateCreated  = DateTime.UtcNow,
                            CreatedBy    = UserId
                        },
                        ParentSpecimen = SelectedSpecimen,
                        CreatedBy      = UserId,
                        DateCreated    = DateTime.UtcNow
                    };

                    newSpecimen = await ApiClient.PutSpecimenAsync(newSpecimen);

                    Activity.Specimen = newSpecimen;
                    SelectedSpecimen.InventoryItem.Quantity -= Activity.Quantity.Value;
                }

                await ApiClient.PutSpecimenAsync(SelectedSpecimen);
            }

            Activity = await ApiClient.PutActivityAsync(Activity);

            Id = Activity.ActivityId;

            if (BlazoredModal != null)
            {
                await BlazoredModal.Close(ModalResult.Ok(Activity));
            }
            else
            {
                await CancelAsync(isNewActivity);
            }
        }
コード例 #3
0
        protected async Task SavePlantInfoAsync()
        {
            var isNewPlantInfo = PlantInfo.PlantInfoId == 0;

            if (isNewPlantInfo)
            {
                PlantInfo.DateCreated = DateTime.UtcNow;
            }
            else
            {
                PlantInfo.DateModified = DateTime.UtcNow;
            }

            PlantInfo.Origin    = SelectedOrigin;
            PlantInfo.Photos    = UploadedPhotos.Any() ? UploadedPhotos : null;
            PlantInfo.Lifeform  = PlantInfo.SelectedLifeform;
            PlantInfo.CreatedBy = UserId;
            PlantInfo.Requirements.StratificationStages = ChosenStratificationStages != null && ChosenStratificationStages.Any() ? ChosenStratificationStages.ToList() : null;
            PlantInfo.WildlifeEffects = ChosenWildlifeEffects != null && ChosenWildlifeEffects.Any() ? ChosenWildlifeEffects.ToList() : null;
            PlantInfo.SoilTypes       = ChosenSoilTypes != null && ChosenSoilTypes.Any() ? ChosenSoilTypes.ToList() : null;

            if (PlantInfo.Height.MinimumHeight.HasValue || PlantInfo.Height.MaximumHeight.HasValue)
            {
                PlantInfo.Height.Unit = DistanceUnit.Feet;
            }
            else
            {
                PlantInfo.Height.Unit = DistanceUnit.Unknown;
            }

            if (PlantInfo.Spread.MinimumSpread.HasValue || PlantInfo.Spread.MaximumSpread.HasValue)
            {
                PlantInfo.Spread.Unit = DistanceUnit.Feet;
            }
            else
            {
                PlantInfo.Spread.Unit = DistanceUnit.Unknown;
            }

            if (MinimumZoneId != PlantInfo.Requirements.ZoneRequirements?.MinimumZone?.Id)
            {
                PlantInfo.Requirements.ZoneRequirements = new ZoneRequirements
                {
                    MinimumZone = Zones.First(z => z.Id == MinimumZoneId)
                };
            }

            if (MaximumZoneId != PlantInfo.Requirements.ZoneRequirements?.MaximumZone?.Id)
            {
                if (PlantInfo.Requirements.ZoneRequirements == null)
                {
                    PlantInfo.Requirements.ZoneRequirements = new ZoneRequirements
                    {
                        MaximumZone = Zones.First(z => z.Id == MaximumZoneId)
                    };
                }
                else
                {
                    PlantInfo.Requirements.ZoneRequirements.MaximumZone = Zones.First(z => z.Id == MaximumZoneId);
                }
            }

            PlantInfo = await ApiClient.PutPlantInfoAsync(PlantInfo);

            if (BlazoredModal != null)
            {
                await BlazoredModal.Close(ModalResult.Ok(PlantInfo));
            }
            else
            {
                await CancelAsync(isNewPlantInfo);
            }
        }