/// <summary> /// Checks Name /// </summary> /// <param name="viewModel">Injected <see cref="UpdateMonth"/></param> /// <returns>Instance of <see cref="Task{Month}"/></returns> public async Task <Month> CheckName(UpdateMonth @viewModel) { Month @Month = await Context.Month .TagWith("CheckName") .AsNoTracking() .FirstOrDefaultAsync(x => x.Name == @viewModel.Name && x.Id != viewModel.Id); 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); }
/// <summary> /// Updates Month /// </summary> /// <param name="viewModel">Injected <see cref="UpdateMonth"/></param> /// <returns>Instance of <see cref="Task{ViewMonth}"/></returns> public async Task <ViewMonth> UpdateMonth(UpdateMonth @viewModel) { await CheckName(@viewModel); Month @Month = await FindMonthById(@viewModel.Id); @Month.Name = @viewModel.Name; @Month.Number = @viewModel.Number; try { Context.Month.Update(@Month); await Context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { await CheckName(@viewModel); } // Log string @logData = @Month.GetType().Name + " with Id " + @Month.Id + " was modified at " + DateTime.Now.ToShortTimeString(); Logger.WriteUpdateItemLog(@logData); return(Mapper.Map <ViewMonth>(@Month)); }