Untitled
unknown
plain_text
a year ago
2.8 kB
2
Indexable
Never
// Obține data și ora curentă DateTime dataCurenta = DateTime.Now; // Obține luna curentă și luna următoare int lunaCurenta = dataCurenta.Month; int lunaUrmatoare = dataCurenta.AddMonths(1).Month; //STOCHEZ DATE PE LUNA CURENTA var DateCereriLunaCurenta = DateCereri.Where(date => date.Month == lunaCurenta) .ToList(); //STOCHEZ DATE PE LUNA URMATOARE var DateCereriLunaUrmatoare = DateCereri.Where(date => date.Month == lunaUrmatoare) .ToList(); //STOCHEZ DATE REVIZUITE PE LUNA CURENTA var dateRevizuiteLunaCurenta = await _context.DateRevizuite.Where(s => s.IdAngajat == angajatID && s.DataRevizuita.Month == lunaCurenta).ToListAsync(); //STOCHEZ DATE REVIZUITE PE LUNA URMATOARE var dateRevizuiteLunaUrmatoare = await _context.DateRevizuite.Where(s => s.IdAngajat == angajatID && s.DataRevizuita.Month == lunaUrmatoare).ToListAsync(); //INDEXI var counterCM = 0; var counterNM = 0; // Numărul maxim de zile permise int maxDaysAllowed = 4; // Calculul zilelor rămase pentru luna curentă int dateRamaseLunaCurenta = Math.Max(0, maxDaysAllowed - (DateCereriLunaCurenta.Count() - dateRevizuiteLunaCurenta.Count())); // Calculul zilelor rămase pentru luna următoare int dateRamaseLunaUrmatoare = Math.Max(0, maxDaysAllowed - (DateCereriLunaUrmatoare.Count() - dateRevizuiteLunaUrmatoare.Count())); //ACTUALIZEZ INDEXII var selectedStartDates = new DateTime[] { selectedStartDate1, selectedStartDate2, selectedStartDate3, selectedStartDate4 }; foreach (var selectedStartDate in selectedStartDates) { if (selectedStartDate != DateTime.MinValue) { if (selectedStartDate.Month == lunaCurenta) counterCM++; else if (selectedStartDate.Month == lunaUrmatoare) counterNM++; } } //VALIDEZ; if ((counterCM + (maxDaysAllowed - dateRamaseLunaCurenta)) > maxDaysAllowed) { return BadRequest(new { success = false, message = "Nu puteți alege mai mult de 4 date în luna curentă." }); } if ((counterNM + (maxDaysAllowed - dateRamaseLunaCurenta)) > maxDaysAllowed) { return BadRequest(new { success = false, message = "Nu puteți alege mai mult de 4 date în luna următoare." }); }