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