private void SaveOrUpdateEnvironment(EnvironmentViewData environmentViewData, Environment environmentEntity, ZoosManagementSystemEntities entities) { environmentEntity.Name = environmentViewData.Name; environmentEntity.Description = environmentViewData.Description; environmentEntity.Surface = environmentViewData.Surface; environmentEntity.Type = environmentViewData.Type; foreach (var animal in environmentViewData.Animals.Where(a => !a.AnimalStatus.Equals("None", StringComparison.InvariantCultureIgnoreCase) && !a.AnimalStatus.Equals("Original", StringComparison.InvariantCultureIgnoreCase))) { var animalId = new Guid(animal.AnimalId); var animalEntity = entities.Animal .Include("Environment") .Where(a => a.Id == animalId) .FirstOrDefault(); if (animalEntity == null) { throw new ArgumentException( string.Format( CultureInfo.CurrentCulture, "No existe ningún animal con el Id {0} para actualizar.", animal.AnimalId)); } animalEntity.Environment = animal.AnimalStatus.Equals( "Remove", StringComparison.InvariantCultureIgnoreCase) ? null : environmentEntity; } foreach (var timeSlot in environmentViewData.TimeSlots.Where(ts => !ts.TimeSlotStatus.Equals("None", StringComparison.InvariantCultureIgnoreCase))) { TimeSlot timeSlotEntity = null; if (timeSlot.TimeSlotStatus.Equals("New", StringComparison.InvariantCultureIgnoreCase)) { timeSlotEntity = new TimeSlot { Environment = environmentEntity, Id = Guid.NewGuid() }; entities.AddToTimeSlot(timeSlotEntity); } else { var timeSlotId = new Guid(timeSlot.TimeSlotId); timeSlotEntity = entities.TimeSlot .Include("Environment") .Where(ts => ts.Id == timeSlotId) .FirstOrDefault(); if (timeSlotEntity == null) { throw new ArgumentException( string.Format( CultureInfo.CurrentCulture, "No existe ningún intervalo de tiempo con el Id {0} para actualizar.", timeSlot.TimeSlotId)); } } if (timeSlot.TimeSlotStatus.Equals("Remove", StringComparison.InvariantCultureIgnoreCase)) { entities.DeleteObject(timeSlotEntity); } else { timeSlotEntity.InitialTime = TimeSpan.Parse(timeSlot.InitialTime); timeSlotEntity.FinalTime = TimeSpan.Parse(timeSlot.FinalTime); timeSlotEntity.TemperatureMin = timeSlot.TemperatureMin; timeSlotEntity.TemperatureMax = timeSlot.TemperatureMax; timeSlotEntity.HumidityMin = timeSlot.HumidityMin; timeSlotEntity.HumidityMax = timeSlot.HumidityMax; timeSlotEntity.LuminosityMin = timeSlot.LuminosityMin; timeSlotEntity.LuminosityMax = timeSlot.LuminosityMax; } } }
private void SaveOrUpdateHealthMeasure(HealthMeasureViewData healthMeasureViewData, HealthMeasure healthMeasureEntity, ZoosManagementSystemEntities entities) { healthMeasureEntity.MeasurementDate = DateTime.Parse(healthMeasureViewData.MeasurementDate); healthMeasureEntity.Height = healthMeasureViewData.Height; healthMeasureEntity.Weight = healthMeasureViewData.Weight; healthMeasureEntity.Temperature = healthMeasureViewData.Temperature; healthMeasureEntity.Notes = healthMeasureViewData.Notes; healthMeasureEntity.Vaccine = healthMeasureViewData.Vaccine; var animalId = new Guid(healthMeasureViewData.AnimalId); healthMeasureEntity.Animal = entities.Animal.FirstOrDefault(a => a.Id == animalId); }
private void SaveOrUpdateAnimal(AnimalViewData animalViewData, Animal animalEntity, ZoosManagementSystemEntities entities) { animalEntity.Name = animalViewData.Name; animalEntity.Species = animalViewData.Species; animalEntity.Sex = (animalViewData.Sex.ToLowerInvariant() == "macho") ? "M" : "F"; animalEntity.Cost = animalViewData.Cost; animalEntity.BornInCaptivity = animalViewData.BornInCaptivity; animalEntity.BirthDate = DateTime.Parse(animalViewData.BirthDate); animalEntity.NextHealthMeasure = DateTime.Parse(animalViewData.NextHealthMeasure); var responsibleId = new Guid(animalViewData.ResponsibleId); animalEntity.Responsible = entities.Responsible.FirstOrDefault(r => r.Id == responsibleId); if (!string.IsNullOrEmpty(animalViewData.EnvironmentId)) { var environmentId = new Guid(animalViewData.EnvironmentId); animalEntity.Environment = entities.Environment.FirstOrDefault(r => r.Id == environmentId); } else { animalEntity.Environment = null; } foreach (var feedingTime in animalViewData.FeedingTimes.Where(ft => !ft.FeedingTimeStatus.Equals("None", StringComparison.InvariantCultureIgnoreCase))) { FeedingTime feedingTimeEntity = null; if (feedingTime.FeedingTimeStatus.Equals("New", StringComparison.InvariantCultureIgnoreCase)) { feedingTimeEntity = new FeedingTime { Id = Guid.NewGuid(), Animal = animalEntity }; entities.AddToFeedingTime(feedingTimeEntity); } else { var feedingTimeId = new Guid(feedingTime.FeedingTimeId); feedingTimeEntity = entities.FeedingTime .Include("Feeding") .Where(ft => ft.Id == feedingTimeId) .FirstOrDefault(); if (feedingTimeEntity == null) { throw new ArgumentException( string.Format( CultureInfo.CurrentCulture, "No existe ningún horario de alimentación con el Id {0} para actualizar.", feedingTime.FeedingTimeId)); } } if (feedingTime.FeedingTimeStatus.Equals("Remove", StringComparison.InvariantCultureIgnoreCase)) { entities.DeleteObject(feedingTimeEntity); } else { var feedingId = new Guid(feedingTime.FeedingId); feedingTimeEntity.Amount = feedingTime.Amount; feedingTimeEntity.Time = TimeSpan.Parse(feedingTime.Time); feedingTimeEntity.Feeding = entities.Feeding.FirstOrDefault(f => f.Id == feedingId); } } }