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