/// <summary> /// Adds Bandera /// </summary> /// <param name="viewModel">Injected <see cref="AddBandera"/></param> /// <returns>Instance of <see cref="Task{ViewBandera}"/></returns> public async Task <ViewBandera> AddBandera(AddBandera @viewModel) { await CheckName(@viewModel); Bandera @bandera = new() { Name = @viewModel.Name, ImageUri = @viewModel.ImageUri }; try { await Context.Bandera.AddAsync(@bandera); await Context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { await CheckName(@viewModel); } // Log string @logData = @bandera.GetType().Name + " with Id " + @bandera.Id + " was added at " + DateTime.Now.ToShortTimeString(); Logger.WriteInsertItemLog(@logData); return(Mapper.Map <ViewBandera>(@bandera)); }
/// <summary> /// Checks Name /// </summary> /// <param name="viewModel">Injected <see cref="AddBandera"/></param> /// <returns>Instance of <see cref="Task{Bandera}"/></returns> public async Task <Bandera> CheckName(AddBandera @viewModel) { Bandera @bandera = await Context.Bandera .TagWith("CheckName") .AsNoTracking() .FirstOrDefaultAsync(x => x.Name == @viewModel.Name); if (@bandera != null) { // Log string @logData = @bandera.GetType().Name + " with Name " + @bandera.Name + " was already found at " + DateTime.Now.ToShortTimeString(); Logger.WriteGetItemFoundLog(@logData); throw new Exception(@bandera.GetType().Name + " with Name " + @viewModel.Name + " already exists"); } return(@bandera); }