/// <summary> /// Checks Name /// </summary> /// <param name="viewModel">Injected <see cref="AddPoblacion"/></param> /// <returns>Instance of <see cref="Task{Poblacion}"/></returns> public async Task <Poblacion> CheckName(UpdatePoblacion @viewModel) { Poblacion @poblacion = await Context.Poblacion .AsNoTracking() .TagWith("CheckName") .FirstOrDefaultAsync(x => x.Name == @viewModel.Name & x.Id != @viewModel.Id); if (@poblacion != null) { // Log string @logData = @poblacion.GetType().Name + " with Name " + @poblacion.Name + " was already found at " + DateTime.Now.ToShortTimeString(); Logger.WriteGetItemFoundLog(@logData); throw new Exception(@poblacion.GetType().Name + " with Name " + @viewModel.Name + " already exists"); } return(@poblacion); }
/// <summary> /// Updates Poblacion /// </summary> /// <param name="viewModel">Injected <see cref="UpdatePoblacion"/></param> /// <returns>Instance of <see cref="Task{ViewPoblacion}"/></returns> public async Task <ViewPoblacion> UpdatePoblacion(UpdatePoblacion @viewModel) { await CheckName(@viewModel); Poblacion @poblacion = await FindPoblacionById(@viewModel.Id); @poblacion.Name = @viewModel.Name; @poblacion.Provincia = await FindProvinciaById(@viewModel.ProvinciaId); @poblacion.ImageUri = @viewModel.ImageUri; try { Context.Poblacion.Update(@poblacion); await Context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { await CheckName(@viewModel); } // Log string @logData = @poblacion.GetType().Name + " with Id " + @poblacion.Id + " was modified at " + DateTime.Now.ToShortTimeString(); Logger.WriteUpdateItemLog(@logData); return(Mapper.Map <ViewPoblacion>(@poblacion)); }