public object GetShiftScheduleById(int id) { object result = null; ShiftScheduleVM objShiftSchedule = new ShiftScheduleVM(); try { using (_context) { objShiftSchedule = _context.ShiftSchedule.Where(x => x.Id == id).Select(y => new ShiftScheduleVM { Id = y.Id, ShiftId = y.ShiftId, Year = y.Year, Month = y.Month, ScheduleDate = y.ScheduleDate, //StartDate = y.StartDate, //EndDate = y.EndDate, EmployeeId = y.EmployeeId, ScheduleDetailId = y.ScheduleDetailId //EmployeeIds = _context.ShiftScheduleEmployeeMapping.Where(z => z.ScheduleId == y.Id).Select(p => p.EmployeeId).ToList() }).FirstOrDefault(); result = new { objShiftSchedule, error = "0", msg = "Success" }; } } catch (Exception ex) { ex.ToString(); result = new { objShiftSchedule, error = "1", msg = "Error" }; } return(result); }
public object CreateUpdateShiftSchedule(int id, [FromBody] ShiftScheduleVM model) { object result = null; string message = ""; string errorcode = ""; string excp = ""; if (model == null) { return(BadRequest()); } using (_context) { using (var _ctxTransaction = _context.Database.BeginTransaction()) { try { if (id != 0) { List <ShiftSchedule> listToRemove = new List <ShiftSchedule>(); listToRemove = _context.ShiftSchedule.Where(y => y.ScheduleDetailId == id).ToList(); if (listToRemove.Count > 0) { _context.ShiftSchedule.RemoveRange(listToRemove); _context.SaveChanges(); } var entityUpdate = _context.ShiftScheduleDetail.FirstOrDefault(x => x.Id == id); if (entityUpdate != null) { entityUpdate.ScheduleType = model.ScheduleType; entityUpdate.Monthly = model.Monthly; entityUpdate.Weekly = model.Weekly; entityUpdate.Daily = model.Daily; entityUpdate.ByWeekly = model.ByWeekly; entityUpdate.StartDate = model.StartDate; entityUpdate.EndDate = model.EndDate; entityUpdate.ShiftId = model.ShiftId; _context.SaveChanges(); } if (model.EmployeeIds.Count > 0) { foreach (var Empid in model.EmployeeIds) { //ShiftScheduleEmployeeMapping obj = new ShiftScheduleEmployeeMapping //{ // ScheduleId = objShiftSchedule.Id, // EmployeeId = Empid, // ShiftId = objShiftSchedule.ShiftId //}; //_context.ShiftScheduleEmployeeMapping.Add(obj); if ((bool)model.Daily == true) { if (IsWorkingDay(model.ScheduleDate.Value.DayOfWeek)) { ShiftSchedule objShiftSchedule = new ShiftSchedule(); objShiftSchedule.ShiftId = model.ShiftId; objShiftSchedule.Year = model.Year; objShiftSchedule.Month = model.Month; objShiftSchedule.ScheduleDate = model.ScheduleDate; objShiftSchedule.EmployeeId = model.EmployeeId; objShiftSchedule.ScheduleDetailId = entityUpdate.Id; //objShiftSchedule.StartDate = model.StartDate; //objShiftSchedule.EndDate = model.EndDate; _context.ShiftSchedule.Add(objShiftSchedule); _context.SaveChanges(); } } else { if (model.StartDate != null && model.EndDate != null) { for (DateTime date = (DateTime)model.StartDate; date <= model.EndDate; date = date.AddDays(1)) { if (IsWorkingDay(date.DayOfWeek)) { ShiftSchedule objShiftSchedule = new ShiftSchedule(); objShiftSchedule.ShiftId = model.ShiftId; objShiftSchedule.Year = model.Year; objShiftSchedule.Month = model.Month; objShiftSchedule.ScheduleDate = date; objShiftSchedule.EmployeeId = model.EmployeeId; objShiftSchedule.ScheduleDetailId = entityUpdate.Id; //objShiftSchedule.StartDate = model.StartDate; //objShiftSchedule.EndDate = model.EndDate; _context.ShiftSchedule.Add(objShiftSchedule); } } _context.SaveChanges(); } } } } _ctxTransaction.Commit(); message = "Entry Updated"; errorcode = "0"; } else { ShiftScheduleDetail objShiftscheduleDetail = new ShiftScheduleDetail(); objShiftscheduleDetail.ScheduleType = model.ScheduleType; objShiftscheduleDetail.Monthly = model.Monthly; objShiftscheduleDetail.Weekly = model.Weekly; objShiftscheduleDetail.Daily = model.Daily; objShiftscheduleDetail.ByWeekly = model.ByWeekly; objShiftscheduleDetail.StartDate = model.StartDate; objShiftscheduleDetail.EndDate = model.EndDate; objShiftscheduleDetail.ShiftId = model.ShiftId; _context.ShiftScheduleDetail.Add(objShiftscheduleDetail); _context.SaveChanges(); if (model.EmployeeIds.Count > 0) { foreach (var Empid in model.EmployeeIds) { //ShiftScheduleEmployeeMapping obj = new ShiftScheduleEmployeeMapping //{ // ScheduleId = objShiftSchedule.Id, // EmployeeId = Empid, // ShiftId = objShiftSchedule.ShiftId //}; //_context.ShiftScheduleEmployeeMapping.Add(obj); if ((bool)model.Daily == true) { if (IsWorkingDay(model.ScheduleDate.Value.DayOfWeek)) { ShiftSchedule objShiftSchedule = new ShiftSchedule(); objShiftSchedule.ShiftId = model.ShiftId; objShiftSchedule.Year = model.Year; objShiftSchedule.Month = model.Month; objShiftSchedule.ScheduleDate = model.ScheduleDate; objShiftSchedule.EmployeeId = model.EmployeeId; objShiftSchedule.ScheduleDetailId = objShiftscheduleDetail.Id; //objShiftSchedule.StartDate = model.StartDate; //objShiftSchedule.EndDate = model.EndDate; _context.ShiftSchedule.Add(objShiftSchedule); _context.SaveChanges(); } } else { if (model.StartDate != null && model.EndDate != null) { for (DateTime date = (DateTime)model.StartDate; date <= model.EndDate; date = date.AddDays(1)) { if (IsWorkingDay(date.DayOfWeek)) { ShiftSchedule objShiftSchedule = new ShiftSchedule(); objShiftSchedule.ShiftId = model.ShiftId; objShiftSchedule.Year = model.Year; objShiftSchedule.Month = model.Month; objShiftSchedule.ScheduleDate = date; objShiftSchedule.EmployeeId = model.EmployeeId; objShiftSchedule.ScheduleDetailId = objShiftscheduleDetail.Id; //objShiftSchedule.StartDate = model.StartDate; //objShiftSchedule.EndDate = model.EndDate; _context.ShiftSchedule.Add(objShiftSchedule); } } _context.SaveChanges(); } } } } //await _ctx.SaveChangesAsync(); _context.SaveChanges(); _ctxTransaction.Commit(); message = "Saved Successfully"; errorcode = "0"; } } catch (Exception e) { _ctxTransaction.Rollback(); e.ToString(); message = "Saved Error"; errorcode = "1"; excp = e.ToString(); } result = new { error = errorcode, msg = message, excp = excp }; } } return(result); }