public async Task <int> DeleteNonLaboraleOEspecialDaysAsync(HorarioDiaEspecialDTO DiaNoLaborableOEspecial) { using (var context = new ISSSTEEntities()) { if (DiaNoLaborableOEspecial.IsNonWorking) // Es dia no laborable { var query = context.TramiteUnidadAtencion .Where(S => S.UnidadAtencionId == DiaNoLaborableOEspecial.DelegationId) .AsQueryable(); // Si no se seleccciona un tramite, el horario sera agregado a todos los trámites existentes if (DiaNoLaborableOEspecial.RequestTypeId.HasValue) { query = query.Where(H => H.CatTipoTramiteId == DiaNoLaborableOEspecial.RequestTypeId); } var tramitesUnidadesAtencion = query.ToList(); tramitesUnidadesAtencion.ForEach(Tu => { var diaNoLaboral = context.DiaNoLaborable.FirstOrDefault( S => S.Fecha == DiaNoLaborableOEspecial.Date && S.TramiteUnidadAtencionId == Tu.TramiteUnidadAtencionId); if (diaNoLaboral != null) { context.DiaNoLaborable.Remove(diaNoLaboral); } }); } else { //Es dia especial var diaEspecial = context.DiaEspecial.FirstOrDefault(S => S.Fecha == DiaNoLaborableOEspecial.Date); if (diaEspecial != null) { if (!diaEspecial.Horario.Any()) { context.DiaEspecial.Remove(diaEspecial); } else { diaEspecial.EsActivo = false; context.DiaEspecial.AddOrUpdate(diaEspecial); } diaEspecial.Horario.ToList() .ForEach(HorarioDiaEspecial => { HorarioDiaEspecial.EsActivo = false; context.Horario.AddOrUpdate(HorarioDiaEspecial); }); } } return(await context.SaveChangesAsync()); } }
public async Task <HttpResponseMessage> DeleteNonLaboraleDays(HorarioDiaEspecialDTO specialDay) { return(await HandleOperationExecutionAsync(async() => { var result = await _calendarDomainService.DeleteNonLaboraleOEspecialDaysAsync(specialDay); return Request.CreateResponse(HttpStatusCode.OK, result); })); }