public string AddTime(string id, string description, string time) { ProjectRequestEntities request = new ProjectRequestEntities(); try { if (description.Count() > 0 && time.Count() > 0) { string name = Convert.ToString(User.Identity.Name); name = name.Remove(0, 8).ToLower(); int requestID = Convert.ToInt16(id); var date = DateTime.Now.Date; var sheetName = request.TimeSheets.FirstOrDefault(d => d.sheetDate == date && d.staffID == name); if (sheetName == null) { int sheetsNeeded; DateTime sheetDate; IEnumerable <TimeSheet> timeSheet = request.TimeSheets.Where(t => t.staffID == name && t.completed == false).OrderByDescending(t => t.sheetDate); TimeSheet currentSheet; var allSheets = request.TimeSheets.Where(t => t.staffID == name).OrderByDescending(t => t.sheetDate); if (allSheets == null || allSheets.Count() < 1) { TimeSheet mySheet = new TimeSheet(); mySheet.sheetDate = DateTime.Today; mySheet.staffID = name; mySheet.completed = false; request.AddToTimeSheets(mySheet); request.SaveChanges(); } currentSheet = allSheets.FirstOrDefault(); sheetDate = currentSheet.sheetDate.GetValueOrDefault(); sheetDate = sheetDate.AddDays(1); sheetsNeeded = (int)DateTime.Today.Subtract(sheetDate).TotalDays; for (var startDate = 1; startDate <= sheetsNeeded + 1; startDate++) { if (sheetDate.DayOfWeek != DayOfWeek.Saturday && sheetDate.DayOfWeek != DayOfWeek.Sunday) { var sheet = request.TimeSheets.FirstOrDefault(t => t.sheetDate == sheetDate && t.staffID == name); if (sheet == null) { TimeSheet mySheet = new TimeSheet(); mySheet.sheetDate = sheetDate; mySheet.staffID = name; mySheet.completed = false; request.AddToTimeSheets(mySheet); request.SaveChanges(); sheetDate = sheetDate.AddDays(1); } else { sheetDate = sheetDate.AddDays(1); } } else { sheetDate = sheetDate.AddDays(1); } } sheetName = request.TimeSheets.FirstOrDefault(d => d.sheetDate == date && d.staffID == name); } var currentRequest = request.Requests.FirstOrDefault(r => r.reuqestID == requestID); Chore chore = new Chore(); chore.chore1 = description; chore.requestID = requestID; chore.sheetID = sheetName.sheetID; chore.timeSpent = Convert.ToDecimal(time); chore.name = currentRequest.projectName; request.AddToChores(chore); request.SaveChanges(); return("Your report has been successfully filed."); }// end validation if else { return("Please fill out description and time fields"); } }// end try catch (Exception ex) { return(ex.ToString()); } }
// // GET: /TimeSheet/ public ActionResult Index() { ProjectRequestEntities request = new ProjectRequestEntities(); string name = Convert.ToString(User.Identity.Name); name = name.Remove(0, 8).ToLower(); int sheetsNeeded; DateTime sheetDate; IEnumerable <TimeSheet> timeSheet = request.TimeSheets.Where(t => t.staffID == name && t.completed == false).OrderByDescending(t => t.sheetDate); TimeSheet currentSheet; var allSheets = request.TimeSheets.Where(t => t.staffID == name).OrderByDescending(t => t.sheetDate); if (allSheets == null || allSheets.Count() < 1) { TimeSheet mySheet = new TimeSheet(); mySheet.sheetDate = DateTime.Today; mySheet.staffID = name; mySheet.completed = false; request.AddToTimeSheets(mySheet); request.SaveChanges(); } currentSheet = allSheets.FirstOrDefault(); //if (timeSheet == null || timeSheet.Count() < 1) //{ // var sheetsCompleted = request.TimeSheets.Where(t => t.staffID == name && t.completed == true).OrderByDescending(t => t.sheetDate); // if (sheetsCompleted == null || sheetsCompleted.Count() < 1) // { // var todaySheet = request.TimeSheets.FirstOrDefault(t => t.sheetDate == DateTime.Today && t.completed == true); // if (todaySheet == null) // { // TimeSheet mySheet = new TimeSheet(); // mySheet.sheetDate = DateTime.Today; // mySheet.staffID = name; // mySheet.completed = false; // request.AddToTimeSheets(mySheet); // request.SaveChanges(); // currentSheet = mySheet; // } // else // currentSheet = todaySheet; // } // else // { // var lastSheetCompleted = sheetsCompleted.FirstOrDefault(); // currentSheet = lastSheetCompleted; // } //} //else //{ // currentSheet = timeSheet.FirstOrDefault(t => t.staffID == name); //} sheetDate = currentSheet.sheetDate.GetValueOrDefault(); sheetDate = sheetDate.AddDays(1); sheetsNeeded = (int)DateTime.Today.Subtract(sheetDate).TotalDays; for (var startDate = 1; startDate <= sheetsNeeded + 1; startDate++) { if (sheetDate.DayOfWeek != DayOfWeek.Saturday && sheetDate.DayOfWeek != DayOfWeek.Sunday) { var sheet = request.TimeSheets.FirstOrDefault(t => t.sheetDate == sheetDate && t.staffID == name); if (sheet == null) { TimeSheet mySheet = new TimeSheet(); mySheet.sheetDate = sheetDate; mySheet.staffID = name; mySheet.completed = false; request.AddToTimeSheets(mySheet); request.SaveChanges(); sheetDate = sheetDate.AddDays(1); } else { sheetDate = sheetDate.AddDays(1); } } else { sheetDate = sheetDate.AddDays(1); } } IEnumerable <TimeSheet> lateSheets = request.TimeSheets.Where(t => t.staffID == name && t.completed == false).OrderByDescending(t => t.sheetDate); return(View(lateSheets)); }