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()); } }
public ActionResult EditTimeSheet(int sheetID, string startDate, string endDate, string assignedProjects = "true", string completed = "false") { ProjectRequestEntities request = new ProjectRequestEntities(); //sheetID = Convert.ToInt32(Request.QueryString["sheetID"]); var chores = request.Chores.Where(c => c.sheetID == sheetID); var timeSheet = request.TimeSheets.FirstOrDefault(t => t.sheetID == sheetID); bool delete; bool complete; if (Request.Form["complete"] != null) { complete = true; } else { complete = false; } timeSheet.completed = complete; foreach (var chore in chores) { var currentRequest = request.Requests.FirstOrDefault(r => r.reuqestID == chore.requestID); if (Request.Form["Delete_" + chore.choreID] != null) { delete = true; } else { delete = false; } if (delete == false) { chore.requestID = Convert.ToInt16(Request.Form["Request_" + chore.choreID]); chore.chore1 = Request.Form["Chore_" + chore.choreID].ToString(); chore.timeSpent = Convert.ToDecimal(Request.Form["TimeSpent_" + chore.choreID]); chore.name = currentRequest.projectName; } else { request.DeleteObject(chore); } } request.SaveChanges(); if (Request.Form["Request"] != null && Request.Form["Request"].ToString().Count() > 0) { int requestID = Convert.ToInt16(Request.Form["Request"]); var currentRequest = request.Requests.FirstOrDefault(r => r.reuqestID == requestID); Chore chore = new Chore(); chore.sheetID = sheetID; chore.requestID = Convert.ToInt16(Request.Form["Request"]); chore.chore1 = Request.Form["Chore"].ToString(); chore.timeSpent = Convert.ToDecimal(Request.Form["TimeSpent"]); chore.name = currentRequest.projectName; request.AddToChores(chore); request.SaveChanges(); } return(RedirectToAction("CreateTimeSheet", new { sheetID = sheetID, startDate = startDate, endDate = endDate, assignedProjects = assignedProjects, completed = completed })); }