public ActionResult WeekEntry(DateTime weekStart) { OneWeekModel model = new OneWeekModel(); ViewBag.AllowDuplicates = ConfigurationManager.AppSettings["AllowDuplicate"] == "1"; //Add the start/End days Tuple <DateTime, DateTime> dates = Utilities.GetWeekStartEndDates(_EndDay, weekStart); model.WeekStart = dates.Item1; model.WeekEnd = dates.Item2; using (TimeLineDB db = new TimeLineDB()) { List <TimeLineModel> lines = db.TimeLines.Where(x => x.UserID == User.Identity.Name) .Where(x => x.LineDate >= dates.Item1) .Where(x => x.LineDate <= dates.Item2) .ToList(); model.IsApproved = lines.Count(x => x.DateApproved == null) == 0 && lines.Count > 0; model.IsSubmitted = lines.Count(x => x.DateSubmitted == null) == 0 && lines.Count > 0; IEnumerable <string> clients = lines.Select(x => x.ClientID).Distinct(); foreach (string clientID in clients) { ClientWeek week = new ClientWeek(); var temp = db.Clients.Where(x => x.Name_Key == clientID).FirstOrDefault(); week.Client = temp; week.Hours = new Dictionary <int, decimal>(); for (int i = 0; i < 7; i++) { decimal dayHours = lines.Where(x => x.ClientID == clientID).Where(x => x.LineDate == weekStart.AddDays(i)).Sum(x => (x.Hours)); week.Hours.Add(i, dayHours); } model.Clients.Add(week); } } model.Clients = model.Clients.OrderBy(x => x.Client.sort_name).ToList(); IEnumerable <SelectListItem> items = from client in GetClients() where !(model.Clients.Any(x => x.Client.Name_Key == client.Value)) select new SelectListItem { Text = client.Text, Value = client.Value }; model.NewClients = items; return(View("WeekEntry", model)); }
public ActionResult WeekEntry(OneWeekModel week) { ViewBag.AllowDuplicates = ConfigurationManager.AppSettings["AllowDuplicate"] == "1"; //Redirect to the Get action for the client entry for the new client return(RedirectToAction("ClientEntry", new { clientID = week.NewClientNameKey, day = week.WeekStart })); }