public void Add(IEnumerable <int> listPersonId, DayExtensions dayExtension) { var persons = _context.Persons.Include(p => p.DayExtensions).Where(p => listPersonId.Contains(p.Id)); var extensionType = _context.ExtensionTypes.FirstOrDefault(e => e.Id.Equals(dayExtension.ExtensionTypeId)); dayExtension.CreatedAt = DateTimeOffset.Now; foreach (var person in persons) { if (!ValidateMaxHours(person.DayExtensions .Where(d => d.AffectationDate.Equals(dayExtension.AffectationDate)).Sum(d => d.HoursNumber) + dayExtension.HoursNumber)) { var newDayExtension = GetNewInstance(dayExtension, extensionType); person.DayExtensions.Add(newDayExtension); _context.Update(person); } else { _validationService.Add("HoursNumber", Enumerations.ErrorType.Warning, string.Format(ErrorMessages.MaxHours, $"{person.Name} {person.LastName}")); } _context.SaveChanges(); } }
public DayExtensions GetNewInstance(DayExtensions dayExtensions, ExtensionTypes extensionTypes) { return(new DayExtensions { AffectationDate = dayExtensions.AffectationDate, CreatedAt = DateTimeOffset.Now, ExtensionType = extensionTypes, ExtensionTypeId = dayExtensions.ExtensionTypeId, HoursNumber = dayExtensions.HoursNumber, PersonsId = dayExtensions.PersonsId, State = dayExtensions.State, RequestDate = DateTime.Now, ModificatedAt = DateTimeOffset.Now, }); }
#pragma warning disable CS1998 // El método asincrónico carece de operadores "await" y se ejecutará de forma sincrónica. Puede usar el operador 'await' para esperar llamadas API que no sean de bloqueo o 'await Task.Run(...)' para hacer tareas enlazadas a la CPU en un subproceso en segundo plano. public async Task <ActionResult> Delete([DataSourceRequest] DataSourceRequest request, DayExtensions model) #pragma warning restore CS1998 // El método asincrónico carece de operadores "await" y se ejecutará de forma sincrónica. Puede usar el operador 'await' para esperar llamadas API que no sean de bloqueo o 'await Task.Run(...)' para hacer tareas enlazadas a la CPU en un subproceso en segundo plano. { _dayExtensionsBL.Delete(model.Id); ModelState.AddError(_validationService); return(Json(ModelState.ToDataSourceResult())); }
public JsonResult Add([DataSourceRequest] DataSourceRequest request, List <int> personsIds, DayExtensions model) { ModelState.Remove("PersonsId"); if (ModelState.IsValid) { _dayExtensionsBL.Add(personsIds, model); ModelState.AddError(_validationService); } return(Json(ModelState.ToDataSourceResult())); }
public async Task <ActionResult> Delete([DataSourceRequest] DataSourceRequest request, DayExtensions model) { _dayExtensionsBL.Delete(model.Id); ModelState.AddError(_validationService); return(Json(ModelState.ToDataSourceResult())); }