public Guid CreateEnvironment(EnvironmentViewData environmentViewData) { using (var entities = this.EntityContext) { var environmentEntity = new Environment { Id = Guid.NewGuid() }; entities.AddToEnvironment(environmentEntity); this.SaveOrUpdateEnvironment(environmentViewData, environmentEntity, entities); entities.SaveChanges(); return environmentEntity.Id; } }
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; } } }
public void UpdateEnvironment(EnvironmentViewData environmentViewData) { using (var entities = this.EntityContext) { var id = new Guid(environmentViewData.EnvironmentId); var environmentEntity = entities.Environment .Include("Animal") .Include("Sensor") .Include("TimeSlot") .Include("EnvironmentMeasure") .Where(e => e.Id == id) .FirstOrDefault(); if (environmentEntity == null) { throw new ArgumentException( string.Format( CultureInfo.CurrentCulture, "No existe ningún ambiente con el Id {0} para actualizar.", environmentViewData.EnvironmentId)); } this.SaveOrUpdateEnvironment(environmentViewData, environmentEntity, entities); entities.SaveChanges(); } }
public ActionResult UpdateEnvironment(string environmentId) { var environmentViewData = new EnvironmentViewData(); var updateModelResult = this.TryUpdateModel<EnvironmentViewData>(environmentViewData, null, null, new [] { "EnvironmentId", "freeanimals" }); if (!updateModelResult) { environmentViewData.FreeAnimals = this.repository.GetFreeAnimals() .Select(a => a.ToViewData(this.repository)) .ToList(); return View(environmentViewData); } try { environmentViewData.EnvironmentId = environmentId; this.repository.UpdateEnvironment(environmentViewData); this.TempData["ActionSucess"] = true; this.TempData["EnvironmentMessage"] = "Se editaron correctamente los datos del ambiente"; } catch (Exception exception) { this.TempData["ActionSucess"] = false; this.TempData["EnvironmentMessage"] = exception.Message; } return this.RedirectToRoute("SearchEnvironment", new { searchCriteria = environmentViewData.EnvironmentId }); }
public ActionResult SaveNewEnvironment() { var environmentViewData = new EnvironmentViewData(); var updateModelResult = this.TryUpdateModel<EnvironmentViewData>(environmentViewData, null, null, new[] { "EnvironmentId", "freeanimals" }); if (!updateModelResult) { environmentViewData.FreeAnimals = this.repository.GetFreeAnimals() .Select(a => a.ToViewData(this.repository)) .ToList(); return View("EditEnvironment", environmentViewData); } Guid environmentId = Guid.Empty; try { environmentId = this.repository.CreateEnvironment(environmentViewData); this.TempData["ActionSucess"] = true; this.TempData["EnvironmentMessage"] = "Se creó correctamente el ambiente"; } catch (Exception exception) { this.TempData["ActionSucess"] = false; this.TempData["EnvironmentMessage"] = exception.Message; } return this.RedirectToRoute("SearchEnvironment", new { searchCriteria = environmentId.ToString() }); }
public ActionResult NewEnvironment() { var environmentViewData = new EnvironmentViewData { FreeAnimals = this.repository.GetFreeAnimals() .Select(a => a.ToViewData(this.repository)) .ToList() }; return this.View("EditEnvironment", environmentViewData); }