private LineModel SetupLineModel(string clientID, DateTime?day = null) { LineModel model = new LineModel(); model.ActivityCodes = GetActivities(); //Add the start/End days Tuple <DateTime, DateTime> dates = Utilities.GetWeekStartEndDates(_EndDay, day); model.WeekStart = dates.Item1; model.WeekEnd = dates.Item2; using (TimeLineDB db = new TimeLineDB()) { model.Lines = db.TimeLines.Where(x => x.UserID == User.Identity.Name) .Where(x => x.LineDate >= dates.Item1) .Where(x => x.LineDate <= dates.Item2) .Where(x => x.ClientID == clientID) .OrderBy(x => x.LineDate) .ThenBy(x => x.StartTime) .ToList(); model.Client = db.Clients.FirstOrDefault(x => x.Name_Key == clientID); } model.EditLine = new TimeLineModel(model.WeekStart.AddDays((int)DateTime.Today.DayOfWeek)); model.EditLine.ClientID = clientID; if (ModelState.IsValid) { ModelState.Clear(); } return(model); }
private IEnumerable <SelectListItem> GetClients() { ETSData.User user = ((ETSData.User)System.Web.HttpContext.Current.Session[ETSData.Constants.HTTPSessionNames.USER]); using (TimeLineDB db = new TimeLineDB()) { if (ConfigurationManager.AppSettings["AllowAllClients"] == "1") { IEnumerable <SelectListItem> items = from client in db.Clients orderby client.sort_name select new SelectListItem { Text = client.sort_name, Value = client.Name_Key }; return(items.ToList()); } else { IEnumerable <SelectListItem> items = from client in db.Clients join rel in db.ConsumerCoachs on client.Name_Key equals rel.ConsumerKey //where !(client.first_name == null || client.first_name.Trim() == string.Empty) where rel.CoachKey == user.NameKey orderby client.sort_name select new SelectListItem { Text = client.sort_name, Value = client.Name_Key }; return(items.ToList()); } } }
private CardModel SetupModel(DateTime?day = null) { CardModel model = new CardModel(); model.Clients = GetClients(); model.ActivityCodes = GetActivities(); //Add the start/End days int endDay = ((ETSData.Agency)System.Web.HttpContext.Current.Session[ETSData.Constants.HTTPSessionNames.AGENCY]).WeekEndDay; Tuple <DateTime, DateTime> dates = Utilities.GetWeekStartEndDates(endDay, day); model.WeekStart = dates.Item1; model.WeekEnd = dates.Item2; using (TimeLineDB db = new TimeLineDB()) { model.Lines = db.TimeLines.Where(x => x.UserID == User.Identity.Name) .Where(x => x.LineDate >= dates.Item1) .Where(x => x.LineDate <= dates.Item2) .ToList <TimeLineModel>(); } model.EditLine = new TimeLineModel(); ModelState.Clear(); return(model); }
private CardModel SetupModel(DateTime?day = null) { CardModel model = new CardModel(); model.Clients = GetClients(); model.ActivityCodes = GetActivities(); //Add the start/End days Tuple <DateTime, DateTime> dates = Utilities.GetWeekStartEndDates(_EndDay, day); model.WeekStart = dates.Item1; model.WeekEnd = dates.Item2; using (TimeLineDB db = new TimeLineDB()) { model.Lines = db.TimeLines.Where(x => x.UserID == User.Identity.Name) .Where(x => x.LineDate >= dates.Item1) .Where(x => x.LineDate <= dates.Item2) .ToList(); } model.EditLine = new TimeLineModel(); if (ModelState.IsValid) { ModelState.Clear(); } return(model); }
public ActionResult Weeks() { ViewBag.AllowDuplicates = ConfigurationManager.AppSettings["AllowDuplicate"] == "1"; WeeksModel model = new WeeksModel(); //Get the previous 5 weeks worth for (int i = 0; i < 5; i++) { Tuple <DateTime, DateTime> dates = Utilities.GetWeekStartEndDates(_EndDay, DateTime.Today.AddDays(i * -7)); 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(); WeekModel week = new WeekModel { WeekStart = dates.Item1, WeekEnd = dates.Item2, TotalHours = lines.Sum(x => (x.Hours)), TotalClients = lines.Select(x => x.ClientID).Distinct().Count() }; model.Weeks.Add(week); } } return(View("Weeks", model)); }
public void Init() { //技能数据加载 skillDB = new Code.SkillSystem.Runtime.SkillDB("skill_common"); skillSummonDB = new Code.SkillSystem.Runtime.SkillSummonDB("skill_summon"); skillMotionDB = new Code.SkillSystem.Runtime.SkillMotionDB("skill_motion"); skillActionDB = new Code.SkillSystem.Runtime.SkillActionDB("skill_action"); timelineDB = new TimeLineDB("time_events"); }
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)); }
// // GET: /Card/Edit/5 public ActionResult Edit(int id) { CardModel model = SetupModel(); using (TimeLineDB db = new TimeLineDB()) { model.EditLine = db.TimeLines.FirstOrDefault(x => x.Id == id); } return(View("Index", model)); }
public ActionResult TimeLineView() { // Get the last day of the current week LineModel model = new LineModel(); using (TimeLineDB db = new TimeLineDB()) { model.EditLine = db.TimeLines.Where(x => x.UserID == User.Identity.Name).FirstOrDefault(); } return(View(model)); }
// // GET: /Card/Delete/5 public ActionResult Delete(int id) { using (TimeLineDB db = new TimeLineDB()) { db.TimeLines.Remove(db.TimeLines.FirstOrDefault(x => x.Id == id)); db.SaveChanges(); } CardModel model = SetupModel(); return(View("Index", model)); }
public ActionResult Index(CardModel model) { using (TimeLineDB db = new TimeLineDB()) { model.EditLine.UserID = User.Identity.Name; db.TimeLines.Add(model.EditLine); db.SaveChanges(); } model = SetupModel(); return(View(model)); }
public ActionResult Edit(int id, string clientID, DateTime week) { LineModel model = SetupLineModel(clientID, week.Date); using (TimeLineDB db = new TimeLineDB()) { model.EditLine = db.TimeLines.FirstOrDefault(x => x.Id == id); } GetWeekHourSummary(model, clientID); return(View("ClientEntry", model)); }
private IEnumerable <SelectListItem> GetActivities() { using (TimeLineDB db = new TimeLineDB()) { IEnumerable <SelectListItem> items = from activity in db.Activities where activity.name_key == "1000" orderby activity.job_num ascending select new SelectListItem { Text = "(" + activity.job_num + ") - " + activity.job_desc, Value = activity.job_num }; return(items.ToList <SelectListItem>()); } }
private IEnumerable <SelectListItem> GetClients() { using (TimeLineDB db = new TimeLineDB()) { IEnumerable <SelectListItem> items = from client in db.Clients //where !(client.first_name == null || client.first_name.Trim() == string.Empty) orderby client.sort_name select new SelectListItem { Text = client.sort_name, Value = client.Name_Key }; return(items.ToList <SelectListItem>()); } }
private IEnumerable <SelectListItem> GetActivities() { using (TimeLineDB db = new TimeLineDB()) { IEnumerable <SelectListItem> items = from activity in db.Activities //where activity.name_key == "1000" orderby activity.job_num select new SelectListItem { Text = activity.job_num + " - " + activity.job_desc.Substring(0, 20), Value = activity.job_num }; return(items.ToList()); } }
public ActionResult Delete(int id, string clientID, DateTime week) { using (TimeLineDB db = new TimeLineDB()) { db.TimeLines.Remove(db.TimeLines.FirstOrDefault(x => x.Id == id)); db.SaveChanges(); } //LineModel model = SetupLineModel(clientID, week.Date); //GetWeekHourSummary(model, clientID); return(RedirectToAction("ClientEntry", new RouteValueDictionary { { "clientID", clientID }, { "day", week.ToShortDateString() } })); //return View("ClientEntry", model); }
private void Duplicate(DateTime weekStart, string clientID = null) { //Add the start/End days Tuple <DateTime, DateTime> dates = Utilities.GetWeekStartEndDates(_EndDay, weekStart); DateTime choosenWeekStart = dates.Item1; DateTime choosenWeekEnd = dates.Item2; Tuple <DateTime, DateTime> currentDate = Utilities.GetWeekStartEndDates(_EndDay); DateTime thisWeekStart = currentDate.Item1; int weeksDifference = (thisWeekStart - weekStart).Days; string userID = User.Identity.Name; using (TimeLineDB db = new TimeLineDB()) { foreach (TimeLineModel line in db.TimeLines.Where(x => (x.LineDate >= choosenWeekStart && x.LineDate <= choosenWeekEnd && x.UserID == userID))) { if (clientID == null || clientID != line.ClientID) { continue; } TimeLineModel temp = new TimeLineModel(); temp.ActivityCode = line.ActivityCode; temp.ClientID = line.ClientID; temp.LineDate = line.LineDate.AddDays(weeksDifference); temp.Pieces = line.Pieces; temp.StartTime = line.StartTime; temp.EndTime = line.EndTime; temp.Hours = line.Hours; temp.UserID = line.UserID; temp.Comments = line.Comments; db.Entry(temp).State = System.Data.EntityState.Added; } db.SaveChanges(); } }
public ActionResult RemoveClient(string clientID, DateTime day) { string userID = User.Identity.Name; DateTime endDay = day.AddDays(7); using (TimeLineDB db = new TimeLineDB()) { foreach (TimeLineModel line in db.TimeLines.Where(x => (x.LineDate >= day && x.LineDate <= endDay && x.UserID == userID && x.ClientID == clientID))) { db.TimeLines.Remove(line); } db.SaveChanges(); } return(WeekEntry(day)); }
public ActionResult Edit(CardModel model) { using (TimeLineDB db = new TimeLineDB()) { model.EditLine.UserID = User.Identity.Name; TimeLineModel temp = db.TimeLines.FirstOrDefault(x => x.Id == model.EditLine.Id); temp.ActivityCode = model.EditLine.ActivityCode; temp.ClientID = model.EditLine.ClientID; temp.LineDate = model.EditLine.LineDate; temp.Pieces = model.EditLine.Pieces; temp.StartTime = model.EditLine.StartTime; temp.EndTime = model.EditLine.EndTime; temp.UserID = model.EditLine.UserID; db.Entry(temp).State = System.Data.EntityState.Modified; db.SaveChanges(); } model = SetupModel(); return(View("Index", model)); }
public ActionResult SubmitTime(DateTime weekStart) { Tuple <DateTime, DateTime> dates = Utilities.GetWeekStartEndDates(_EndDay, weekStart); 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(); foreach (TimeLineModel line in lines) { line.DateSubmitted = DateTime.Now; } db.SaveChanges(); } // LineModel model = SetupLineModel(clientID, weekStart); //GetWeekHourSummary(model, model.Client.Name_Key); //return View("ClientEntry", model); return(RedirectToAction("WeekEntry", new { weekStart = weekStart })); }
public ActionResult ClientEntry(LineModel model, string viewName = null) { if (System.Configuration.ConfigurationManager.AppSettings["UseHours"] != "1") { if (model.EditLine.EndTime <= model.EditLine.StartTime) { ModelState.AddModelError("EditLine.EndTime", "End Time must be after start time"); } } //Check Pieces if (ETSData.Helpers.CheckIfPiecesNeeded(ConfigurationManager.ConnectionStrings["ETSConnection"].ConnectionString, model.EditLine.ActivityCode) && model.EditLine.Pieces <= 0) { ModelState.AddModelError("EditLine.Pieces", "This Activity Code requires Pieces"); } //Check Date if (!(model.EditLine.LineDate.Date >= model.WeekStart.Date && model.EditLine.LineDate.Date <= model.WeekStart.Date.AddDays(7))) { ModelState.AddModelError("EditLine.LineDate", "This Date must be within the week"); } //Check total hours for this client double oldHours = ETSData.Helpers.GetHoursThisWeekForClient (ConfigurationManager.ConnectionStrings["ETSConnection"].ConnectionString, model.Client.Name_Key, model.EditLine.LineDate); double newHours = (model.EditLine.EndTime - model.EditLine.StartTime).TotalHours; if (oldHours + newHours > int.Parse(ConfigurationManager.AppSettings["HoursError"])) { ModelState.AddModelError("EditLine.EndTime", "Total hours can not exceed " + ConfigurationManager.AppSettings["HoursError"] + " hours for the day."); } if (ModelState.IsValid) { //Save the edited line using (TimeLineDB db = new TimeLineDB()) { System.Data.EntityState state = System.Data.EntityState.Modified; model.EditLine.UserID = User.Identity.Name; TimeLineModel temp = db.TimeLines.FirstOrDefault(x => x.Id == model.EditLine.Id); if (temp == null) { temp = new TimeLineModel(); state = System.Data.EntityState.Added; } temp.ActivityCode = model.EditLine.ActivityCode; temp.ClientID = model.Client.Name_Key; temp.LineDate = model.EditLine.LineDate; temp.Pieces = model.EditLine.Pieces; temp.StartTime = model.EditLine.StartTime; temp.EndTime = model.EditLine.EndTime; if (System.Configuration.ConfigurationManager.AppSettings["UseHours"] == "1") { temp.Hours = model.EditLine.Hours; } else { temp.Hours = (decimal)(model.EditLine.EndTime - model.EditLine.StartTime).TotalHours; } temp.UserID = model.EditLine.UserID; temp.Comments = model.EditLine.Comments; db.Entry(temp).State = state; db.SaveChanges(); } } model = SetupLineModel(model.Client.Name_Key, model.WeekStart.Date); GetWeekHourSummary(model, model.Client.Name_Key); return(viewName == null?View(model) : View(viewName, model)); }