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); } }
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); } }
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); } }