public IActionResult CreateTimeslipTemplate(CustomDay_WBIVM customDay_WBIVM) { Guid wbiGuid = Guid.Parse(customDay_WBIVM.WBI_Id); CustomDay_WBI timeslip_template = new CustomDay_WBI() { NewChangeRequestId = wbiGuid, CustomDayId = customDay_WBIVM.CustomDayId, Remarks = customDay_WBIVM.Remarks }; if (customDay_WBIVM.StartTime != null) { timeslip_template.StartTime = DateTime.Parse(customDay_WBIVM.StartTime); } else { //throw new ArgumentNullException("You need to enter a start time..."); return(new BadRequestObjectResult(new { message = "You need to enter a start time..." })); } if (customDay_WBIVM.EndTime != null) { timeslip_template.EndTime = DateTime.Parse(customDay_WBIVM.EndTime); } else { return(new BadRequestObjectResult(new { message = "You need to enter an end time..." })); } foreach (var item in _context.Timeslip_Templates.Where(i => i.CustomDayId == customDay_WBIVM.CustomDayId)) { if (item.StartTime >= timeslip_template.EndTime || item.EndTime <= timeslip_template.StartTime) { } else { return(new BadRequestObjectResult(new { message = "Times cannot overlap" })); } } _context.Timeslip_Templates.Add(timeslip_template); _context.SaveChanges(); return(new OkObjectResult(timeslip_template)); }
public bool EditTimeslipTemplate(CustomDay_WBIVM customDay_WBIVM) { var timeslip_template = GetOneTimeslipTemplate(customDay_WBIVM.TimeslipTemplateId); if (timeslip_template == null) { return(false); } else { timeslip_template.StartTime = DateTime.Parse(customDay_WBIVM.StartTime); timeslip_template.EndTime = DateTime.Parse(customDay_WBIVM.EndTime); timeslip_template.Remarks = customDay_WBIVM.Remarks; _context.SaveChanges(); return(true); } }
public IActionResult Create([FromBody] CustomDay_WBIVM customDay_WBIVM) { DateTime newStartTime; DateTime newEndTime; //check for start time null or empty if (customDay_WBIVM.StartTime == null || customDay_WBIVM.StartTime == "") { return(new BadRequestObjectResult(new { message = "Please enter a start time" })); } //check that start time is a valid datetime bool success1 = DateTime.TryParse(customDay_WBIVM.StartTime, out DateTime result1); if (success1) { newStartTime = result1; } else { return(new BadRequestObjectResult(new { message = "Please enter a valid start time" })); } //check for end time null or empty if (customDay_WBIVM.EndTime == null || customDay_WBIVM.EndTime == "") { return(new BadRequestObjectResult(new { message = "Please enter an end time" })); } //check that end time is a valid datetime bool success2 = DateTime.TryParse(customDay_WBIVM.EndTime, out DateTime result2); if (success2) { newEndTime = result2; } else { return(new BadRequestObjectResult(new { message = "Please enter a valid end time" })); } //check that start time is less than (earlier than) end time if (newStartTime >= newEndTime) { return(new BadRequestObjectResult(new { message = "End time must be later than start time" })); } //check that start time and end time are the same date if (newStartTime.Date != newEndTime.Date) { return(new BadRequestObjectResult(new { message = "Start and end time must be the same date" })); } //check for overlap with other timeslip templates var timeslipTemplates = customDay_WBIRepo.GetAllTimeslipTemplateByCustomDay(customDay_WBIVM.CustomDayId); foreach (var item in timeslipTemplates) { if (item.TimeslipTemplateId != customDay_WBIVM.TimeslipTemplateId) { if (item.StartTime.Hour < newEndTime.Hour && item.EndTime.Hour > newStartTime.Hour) { return(new BadRequestObjectResult(new { message = "Times cannot overlap" })); } if (item.StartTime.Hour == newEndTime.Hour) { if (item.StartTime.Minute < newEndTime.Minute) { return(new BadRequestObjectResult(new { message = "Times cannot overlap" })); } } if (item.EndTime.Hour == newStartTime.Hour) { if (item.EndTime.Minute > newStartTime.Minute) { return(new BadRequestObjectResult(new { message = "Times cannot overlap" })); } } } } return(new OkObjectResult(customDay_WBIRepo.CreateTimeslipTemplate(customDay_WBIVM))); }