コード例 #1
0
        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());
            }
        }
コード例 #2
0
        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 }));
        }