コード例 #1
0
        }//edit

        // GET: WorkAssignments/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            WorkAssignments workassdetail = db.WorkAssignments.Find(id);

            if (workassdetail == null)
            {
                return(HttpNotFound());
            }

            WorkAssignmentsViewModel view = new WorkAssignmentsViewModel();

            view.Id_WorkAssignment = workassdetail.Id_WorkAssignment;
            view.Title             = workassdetail.Title;
            view.Description       = workassdetail.Description;
            view.Deadline          = workassdetail.Deadline;
            view.InProgress        = workassdetail.InProgress;
            view.InProgressAt      = workassdetail.InProgressAt;
            view.CompletedAt       = workassdetail.CompletedAt;
            view.Completed         = workassdetail.Completed;
            view.LastModifiedAt    = DateTime.Now;
            view.DeletedAt         = DateTime.Now;
            view.Active            = workassdetail.Active;

            view.Id_Customer  = workassdetail.Customers?.Id_Customer;
            view.CustomerName = workassdetail.Customers?.CustomerName;

            return(View(view));
        }
コード例 #2
0
        // GET: WorkAssignments/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            WorkAssignments workassdetail = db.WorkAssignments.Find(id);

            if (workassdetail == null)
            {
                return(HttpNotFound());
            }

            WorkAssignmentsViewModel view = new WorkAssignmentsViewModel();

            view.Id_WorkAssignment = workassdetail.Id_WorkAssignment;
            view.Title             = workassdetail.Title;
            view.Description       = workassdetail.Description;
            view.Deadline          = workassdetail.Deadline.GetValueOrDefault();
            view.CreatedAt         = workassdetail.CreatedAt.GetValueOrDefault();
            view.InProgress        = workassdetail.InProgress;
            view.InProgressAt      = workassdetail.InProgressAt.GetValueOrDefault();
            view.CompletedAt       = workassdetail.CompletedAt.GetValueOrDefault();
            view.Completed         = workassdetail.Completed;
            view.LastModifiedAt    = workassdetail.LastModifiedAt;
            view.DeletedAt         = workassdetail.DeletedAt.GetValueOrDefault();
            view.Active            = workassdetail.Active;

            view.Id_Customer  = workassdetail.Customers?.Id_Customer;
            view.CustomerName = workassdetail.Customers?.CustomerName;

            ViewBag.CustomerName = new SelectList((from c in db.Customers select new { Id_Customer = c.Id_Customer, CustomerName = c.CustomerName }), "Id_Customer", "CustomerName", view.Id_Customer);

            return(View(view));
        }
コード例 #3
0
        public ActionResult Edit(WorkAssignmentsViewModel model)
        {
            WorkAssignments wam = db.WorkAssignments.Find(model.Id_WorkAssignment);

            wam.Title        = model.Title;
            wam.Description  = model.Description;
            wam.Deadline     = model.Deadline.GetValueOrDefault();
            wam.CreatedAt    = model.CreatedAt.GetValueOrDefault();
            wam.InProgress   = model.InProgress;
            wam.InProgressAt = model.InProgressAt.GetValueOrDefault();
            //wam.CompletedAt = model.CompletedAt.GetValueOrDefault();
            wam.CompletedAt    = DateTime.Now;
            wam.Completed      = model.Completed;
            wam.LastModifiedAt = DateTime.Now;
            wam.DeletedAt      = model.DeletedAt.GetValueOrDefault();
            wam.Active         = true;

            int customerId = int.Parse(model.CustomerName);

            if (customerId > 0)
            {
                Customers cus = db.Customers.Find(customerId);
                wam.Id_Customer = cus.Id_Customer;
            }

            ViewBag.CustomerName = new SelectList((from c in db.Customers select new { Id_Customer = c.Id_Customer, CustomerName = c.CustomerName }), "Id_Customer", "CustomerName", wam.Id_Customer);

            db.SaveChanges();
            return(RedirectToAction("Index"));
        }//edit
コード例 #4
0
        public WorkModel GetModel(string workName)
        {
            panconDatabaseEntities entities = new panconDatabaseEntities();

            try
            {
                string          chosenWorkId   = workName;
                WorkAssignments chosenWorkData = (from cw in entities.WorkAssignments
                                                  where (cw.Active == true) &&
                                                  (cw.WorkAssignmentId.ToString() == chosenWorkId)
                                                  select cw).FirstOrDefault();

                WorkModel chosenWorkModel = new WorkModel()
                {
                    WorkTitle   = chosenWorkData.Title,
                    Description = chosenWorkData.Description,
                    Deadline    = chosenWorkData.Deadline.Value
                };
                return(chosenWorkModel);
            }
            finally
            {
                entities.Dispose();
            }
        }
コード例 #5
0
        public ActionResult DeleteConfirmed(int id)
        {
            WorkAssignments workAssignments = db.WorkAssignments.Find(id);

            db.WorkAssignments.Remove(workAssignments);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #6
0
        public ActionResult CreateNew([FromBody] WorkAssignments workAssignment)
        {
            tuntidbContext db = new tuntidbContext();

            try
            {
                db.WorkAssignments.Add(workAssignment);
                db.SaveChanges();
                return(Ok(workAssignment.IdWorkAssignment));
            }
            catch
            {
                return(BadRequest("Adding work assignment failed"));
            }
            finally
            {
                db.Dispose();
            }
        }
コード例 #7
0
        }//Index

        // GET: WorkAssignments/Details/5
        public ActionResult Details(int?id)
        {
            WorkAssignmentsViewModel model = new WorkAssignmentsViewModel();

            MobileWorkDataEntities entities = new MobileWorkDataEntities();

            try
            {
                WorkAssignments workassdetail = entities.WorkAssignments.Find(id);
                if (workassdetail == null)
                {
                    return(HttpNotFound());
                }

                // muodostetaan näkymämalli tietokannan rivien pohjalta
                WorkAssignmentsViewModel view = new WorkAssignmentsViewModel();
                view.Id_WorkAssignment = workassdetail.Id_WorkAssignment;
                view.Title             = workassdetail.Title;
                view.Description       = workassdetail.Description;
                view.Deadline          = workassdetail.Deadline;
                view.CreatedAt         = workassdetail.CreatedAt;
                view.InProgress        = workassdetail.InProgress;
                view.InProgressAt      = workassdetail.InProgressAt;
                view.CompletedAt       = workassdetail.CompletedAt;
                view.Completed         = workassdetail.Completed;
                view.LastModifiedAt    = workassdetail.LastModifiedAt;
                view.DeletedAt         = workassdetail.DeletedAt;
                view.Active            = workassdetail.Active;

                view.Id_Customer     = workassdetail.Customers?.Id_Customer;
                view.CustomerName    = workassdetail.Customers?.CustomerName;
                ViewBag.CustomerName = new SelectList((from c in db.Customers select new { Id_Customer = c.Id_Customer, CustomerName = c.CustomerName }), "Id_Customer", "CustomerName", view.Id_Customer);

                model = view;
            }
            finally
            {
                entities.Dispose();
            }

            return(View(model));
        }//details
コード例 #8
0
        public ActionResult Create(WorkAssignmentsViewModel model)
        {
            MobileWorkDataEntities db = new MobileWorkDataEntities();

            WorkAssignments wam = new WorkAssignments();

            wam.Title          = model.Title;
            wam.Description    = model.Description;
            wam.Deadline       = model.Deadline;
            wam.CreatedAt      = DateTime.Now;
            wam.InProgress     = model.InProgress;
            wam.InProgressAt   = model.InProgressAt;
            wam.CompletedAt    = model.CompletedAt;
            wam.Completed      = model.Completed;
            wam.LastModifiedAt = DateTime.Now;
            wam.Active         = true;;

            db.WorkAssignments.Add(wam);

            int customerId = int.Parse(model.CustomerName);

            if (customerId > 0)
            {
                Customers cus = db.Customers.Find(customerId);
                wam.Id_Customer = cus.Id_Customer;
            }

            ViewBag.CustomerName = new SelectList((from c in db.Customers select new { Id_Customer = c.Id_Customer, CustomerName = c.CustomerName }), "Id_Customer", "CustomerName", null);

            try
            {
                db.SaveChanges();
            }

            catch (Exception ex)
            {
            }

            return(RedirectToAction("Index"));
        }//create
コード例 #9
0
        [HttpPost] //verbiattribuutti
        public bool PostStatus(WorkAssignmentOperationModel input)
        {
            MobileWorkDataEntities entities = new MobileWorkDataEntities();

            try
            {
                WorkAssignments assignment = (from wa in entities.WorkAssignments
                                              where (wa.Active == true) &&
                                              (wa.Title == input.AssignmentTitle)
                                              select wa).FirstOrDefault();

                if (assignment == null)
                {
                    return(false);
                }

                //NumberStyles style;
                //CultureInfo provider;
                //provider = new CultureInfo("fi-FI");
                //string valueString = input.Latitude.ToString("R", CultureInfo.InvariantCulture);
                //style = NumberStyles.AllowDecimalPoint;


                if (input.Operation == "Start")
                {
                    int assignmentId = assignment.Id_WorkAssignment;

                    Timesheets newEntry = new Timesheets()
                    {
                        Id_WorkAssignment = assignmentId,
                        StartTime         = DateTime.Now,
                        WorkComplete      = false,
                        Active            = true,
                        CreatedAt         = DateTime.Now
                    };
                    entities.Timesheets.Add(newEntry);
                }
                else if (input.Operation == "Stop")
                {
                    int assignmentId = assignment.Id_WorkAssignment;

                    Timesheets existing = (from ts in entities.Timesheets
                                           where (ts.Id_WorkAssignment == assignmentId) &&
                                           (ts.Active == true) && (ts.WorkComplete == false)
                                           orderby ts.StartTime descending
                                           select ts).FirstOrDefault();

                    if (existing != null)
                    {
                        existing.StopTime       = DateTime.Now;
                        existing.WorkComplete   = true;
                        existing.LastModifiedAt = DateTime.Now;
                    }
                    else
                    {
                        return(false);
                    }
                }
                entities.SaveChanges();
            }
            catch
            {
                return(false);
            }
            finally
            {
                entities.Dispose();
            }
            return(true);
        }
コード例 #10
0
        public bool PostStatus(WorkAssignmentOperationModel input)
        {
            TimesheetEntities entities = new TimesheetEntities();

            try
            {
                WorkAssignments assignment = (from wa in entities.WorkAssignments
                                              where (wa.Active == true) &&
                                              (wa.Title == input.AssignmentTitle)
                                              select wa).FirstOrDefault();

                if (assignment == null)
                {
                    return(false);
                }

                if (input.Operation == "Start")
                {
                    int        assignmentId = assignment.Id_WorkAssignment;
                    Timesheets newEntry     = new Timesheets()
                    {
                        Id_WorkAssignment = assignmentId,
                        StartTime         = DateTime.Now,
                        WorkComplete      = false,
                        Active            = true,
                        CreatedAt         = DateTime.Now
                    };
                    entities.Timesheets.Add(newEntry);

                    //Päivitetään samalla work-assignmentin tilatietoja
                    assignment.InProgress     = true;
                    assignment.InProgressAt   = DateTime.Now;
                    assignment.LastModifiedAt = DateTime.Now;
                }
                else if (input.Operation == "Stop")
                {
                    int        assignmentId = assignment.Id_WorkAssignment;
                    Timesheets existing     = (from ts in entities.Timesheets
                                               where (ts.Id_WorkAssignment == assignmentId) &&
                                               (ts.Active == true) && (ts.WorkComplete == false)
                                               orderby ts.StartTime descending
                                               select ts).FirstOrDefault();

                    if (existing != null)
                    {
                        existing.StopTime       = DateTime.Now;
                        existing.WorkComplete   = true;
                        existing.LastModifiedAt = DateTime.Now;

                        //Päivitetään samalla work-assignmentin tilatietoja
                        assignment.InProgress     = false;
                        assignment.Completed      = true;
                        assignment.CompletedAt    = DateTime.Now;
                        assignment.LastModifiedAt = DateTime.Now;
                    }
                    else
                    {
                        return(false);
                    }
                }
                entities.SaveChanges();
            }
            catch
            {
                return(false);
            }
            finally
            {
                entities.Dispose();
            }
            return(true);
        }
コード例 #11
0
        public bool PostWork(WorkModel model)
        {
            panconDatabaseEntities entities = new panconDatabaseEntities();

            Customers customer = (from cu in entities.Customers
                                  where (cu.Active == true) &&
                                  (cu.CustomerName == model.CustomerName)
                                  select cu).FirstOrDefault();

            try
            {
                if (model.Operation == "Save")
                {
                    WorkAssignments newEntry = new WorkAssignments()
                    {
                        CustomerId  = customer.CustomerId,
                        Title       = model.WorkTitle,
                        Description = model.Description,
                        Deadline    = model.Deadline,
                        InProgress  = true,
                        CreatedAt   = DateTime.Now,
                        Active      = true
                    };
                    entities.WorkAssignments.Add(newEntry);
                }
                else if (model.Operation == "Modify")
                {
                    WorkAssignments existing = (from wa in entities.WorkAssignments
                                                where (wa.WorkAssignmentId == model.WorkId) &&
                                                (wa.Active == true)
                                                select wa).FirstOrDefault();

                    if (existing != null)
                    {
                        existing.Title        = model.WorkTitle;
                        existing.Description  = model.Description;
                        existing.Deadline     = model.Deadline;
                        existing.LastModified = DateTime.Now;
                    }
                    else
                    {
                        return(false);
                    }
                }
                else if (model.Operation == "Delete")
                {
                    WorkAssignments existing = (from wa in entities.WorkAssignments
                                                where (wa.WorkAssignmentId == model.WorkId)
                                                select wa).FirstOrDefault();

                    if (existing != null)
                    {
                        entities.WorkAssignments.Remove(existing);
                    }
                    else
                    {
                        return(false);
                    }
                }

                else if (model.Operation == "Assign")
                {
                    WorkAssignments assignment = (from wa in entities.WorkAssignments
                                                  where (wa.WorkAssignmentId == model.WorkId) &&
                                                  (wa.Active == true) && (wa.InProgress == true)
                                                  select wa).FirstOrDefault();

                    if (assignment == null)
                    {
                        return(false);
                    }
                    Employees emp = (from e in entities.Employees
                                     where (e.EmployeeId == model.EmployeeId)
                                     select e).FirstOrDefault();

                    if (emp == null)
                    {
                        return(false);
                    }
                    int workId     = assignment.WorkAssignmentId;
                    int customerId = assignment.CustomerId.Value;
                    assignment.InProgressAt = DateTime.Now;
                    Timesheets newEntry = new Timesheets()
                    {
                        CustomerId       = customerId,
                        ContractorId     = emp.ContractorId,
                        EmployeeId       = emp.EmployeeId,
                        WorkAssignmentId = workId,
                        StartTime        = DateTime.Now,
                        CreatedAt        = DateTime.Now,
                        Active           = true,
                        WorkComplete     = false
                    };
                    entities.Timesheets.Add(newEntry);
                }
                else if (model.Operation == "MarkComplete")
                {
                    WorkAssignments assignment = (from wa in entities.WorkAssignments
                                                  where (wa.WorkAssignmentId == model.WorkId) &&
                                                  (wa.Active == true) &&
                                                  (wa.InProgress == true) &&
                                                  (wa.InProgressAt != null)
                                                  select wa).FirstOrDefault();

                    if (assignment == null)
                    {
                        return(false);
                    }
                    int workId     = assignment.WorkAssignmentId;
                    int customerId = assignment.CustomerId.Value;
                    assignment.CompletedAt = DateTime.Now;
                    assignment.Completed   = true;
                    assignment.InProgress  = false;

                    Timesheets existing = (from ts in entities.Timesheets
                                           where (ts.WorkAssignmentId == workId) &&
                                           (ts.CustomerId == customerId)
                                           select ts).FirstOrDefault();

                    if (existing != null)
                    {
                        existing.WorkComplete = true;
                        existing.StopTime     = DateTime.Now;
                        existing.LastModified = DateTime.Now;
                        existing.Comments     = "Work set to completed by Admin";
                    }
                }
                entities.SaveChanges();
            }
            catch
            {
                return(false);
            }
            finally
            {
                entities.Dispose();
            }
            return(true);
        }
コード例 #12
0
        public bool PostStatus(WorkAssignmentOperationModel input) // Todo: Ota myös customer ja employee tieto
        {
            tuntidbContext context = new tuntidbContext();

            try
            {       //Ensin haetaan työtehtävä Otsikon (title) perusteella ja nimetään se assignment muuttujaksi
                WorkAssignments assignment = (from wa in context.WorkAssignments
                                              where (wa.Active == true) &&
                                              (wa.Title == input.AssignmentTitle)
                                              select wa).FirstOrDefault();

                if (assignment == null)
                {
                    return(false);
                }

                //--------------------------IF--START----------------------------------------------------------------------

                else if (input.Operation == "Start")
                {
                    if (assignment.InProgress == true || assignment.Completed == true) // Lisätty 4.5.

                    {
                        return(false);
                    }
                    else
                    {
                        int assignmentId = assignment.IdWorkAssignment;

                        // Luodaan uusi timesheet työlle

                        Timesheet newEntry = new Timesheet()
                        {
                            IdWorkAssignment = assignmentId,
                            StartTime        = DateTime.Now,
                            //WorkComplete = false, ------------ poistettu turha kenttä
                            Active    = true,
                            CreatedAt = DateTime.Now
                        };

                        context.Timesheet.Add(newEntry);

                        // Päivitetään työtehtävän tilaa myös work assignments tauluun

                        WorkAssignments assignments = (from wa in context.WorkAssignments
                                                       where (wa.IdWorkAssignment == assignmentId) &&
                                                       (wa.Active == true)
                                                       select wa).FirstOrDefault();

                        assignment.InProgress     = true;
                        assignment.WorkStartedAt  = DateTime.Now;
                        assignment.LastModifiedAt = DateTime.Now;

                        context.SaveChanges(); // talletetaan kaikki em muutokset
                    }
                }

                //--------------------------------IF--STOP----------------------------------------------------------------------

                else if (input.Operation == "Stop")
                {
                    int assignmentId = assignment.IdWorkAssignment;

                    // Halutaan muuttaa tietoja sekä timesheetiin...

                    Timesheet existing = (from ts in context.Timesheet
                                          where (ts.IdWorkAssignment == assignmentId) &&
                                          (ts.Active == true)
                                          select ts).FirstOrDefault();

                    //............että work assignmentteihin

                    WorkAssignments assignments = (from wa in context.WorkAssignments
                                                   where (wa.IdWorkAssignment == assignmentId) &&
                                                   (wa.Active == true)
                                                   select wa).FirstOrDefault();

                    if (existing != null && assignment != null)
                    {
                        if (assignment.InProgress == false || assignment.Completed == true) // Muutettu 4.5.

                        {
                            return(false);
                        }
                        else
                        {
                            // Timesheetin uudet arvot

                            existing.StopTime       = DateTime.Now;
                            existing.WorkComplete   = true;
                            existing.LastModifiedAt = DateTime.Now;


                            // Assignmentin uudet arvot

                            assignment.LastModifiedAt = DateTime.Now;
                            assignment.Completed      = true;
                            assignment.CompletedAt    = DateTime.Now;
                            assignment.InProgress     = false;
                        }
                    }

                    else
                    {
                        return(false); // Jos id tieto on null jommassa kummassa.
                    }
                }

                context.SaveChanges();     // talletetaan kaikki em muutokset
            }

            catch
            {
                return(false); // Jos jotain muuta menee pileen.
            }

            finally
            {
                context.Dispose();
            }
            return(true); // Mobiilisovellukselle palautetaan true
        }
コード例 #13
0
        public bool PostStatus(WorkAssignmentOperationModel input)
        {
            ProjektitDBCareContext context = new ProjektitDBCareContext();

            try
            {
                // Haetaan aktiiviset työtehtävät nimen perusteella ja sijoitetaan se oneAssignment-muuttujaan
                WorkAssignments oneAssignment = (from wa in context.WorkAssignments
                                                 where wa.Active == true &&
                                                 wa.Title == input.AssignmentTitle //Otsikko vastaa sitä, mitä mobiilisovellus on lähettänyt
                                                 select wa).FirstOrDefault();



                //Hajautetaan valitun työntekijän nimi kahteen muuttujaan etu- ja sukunimeksi
                //(Lisättiin WorkAssingmentOperationModel.cs:ään prop Name)
                string[] nameParts = input.Name.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
                string   fname     = nameParts[0];
                string   lname     = nameParts[1];


                //Luodaan Employees tyyppinen olio (employee) edellisen nimen jaon perusteella
                Employees employee = (from e in context.Employees
                                      where e.Active == true &&
                                      e.FirstName == fname &&
                                      e.LastName == lname
                                      select e).FirstOrDefault();


                if (oneAssignment == null)
                {
                    return(false);
                }


                // ---------- Jos painettu "ALOITA TYÖ" -------------//
                else if (input.Operation == "Start")
                {
                    if (oneAssignment.InProgress == true || oneAssignment.Completed == true)
                    {
                        return(false);
                    }
                    else
                    {
                        int    assignmentId = oneAssignment.IdWorkAssignment;
                        int    employeeId   = employee.IdEmployee;
                        string oneComment   = input.Comment;
                        string latitude     = input.Latitude;
                        string longitude    = input.Longitude;

                        //Luodaan työlle uusi TimeSheet
                        Timesheet newEntry = new Timesheet()
                        {
                            IdWorkAssignment = assignmentId,
                            IdEmployee       = employeeId,
                            StartTime        = DateTime.Now,
                            Active           = true,
                            Comments         = oneComment + " - " + fname,
                            Longitude        = longitude,
                            Latitude         = latitude,
                            CreatedAt        = DateTime.Now,
                            LastModifiedAt   = DateTime.Now
                        };

                        context.Timesheet.Add(newEntry);

                        //Päivitetään samalla myös WorkAssignments-taulua
                        oneAssignment.InProgress     = true;
                        oneAssignment.WorkStartedAt  = DateTime.Now;
                        oneAssignment.LastModifiedAt = DateTime.Now;
                    }


                    //Tallennetaan kaikki em. muutokset tietokantaan
                    context.SaveChanges();
                }

                // ---------- Jos painettu "LOPETA TYÖ" -------------//
                else if (input.Operation == "Stop")
                {
                    string oneFinalComment = input.Comment;

                    int assignmentId = oneAssignment.IdWorkAssignment;

                    //Haetaan tiedot Timesheet ja WorkAssignments-tauluista ja.....
                    Timesheet timesheet = (from ts in context.Timesheet
                                           where ts.IdWorkAssignment == assignmentId &&
                                           ts.Active == true
                                           select ts).FirstOrDefault();


                    WorkAssignments assignments = (from wa in context.WorkAssignments
                                                   where wa.IdWorkAssignment == assignmentId &&
                                                   wa.Active == true
                                                   select wa).FirstOrDefault();


                    //....muutetaan niiden tietoja
                    if (timesheet != null && assignments != null)
                    {
                        if (assignments.InProgress == false || assignments.Completed == true)
                        {
                            return(false);
                        }

                        else
                        {
                            //Timesheet-taulun uudet tiedot
                            timesheet.StopTime       = DateTime.Now;
                            timesheet.LastModifiedAt = DateTime.Now;
                            timesheet.Comments       = oneFinalComment + " - " + fname;


                            //WorkAssignments-taulun uudet tiedot
                            assignments.Completed      = true;
                            assignments.CompletedAt    = DateTime.Now;
                            assignments.InProgress     = false;
                            assignments.LastModifiedAt = DateTime.Now;
                        }
                    }
                    else
                    {
                        return(false);  //Jos id-tieto on null jommassa kummassa
                    }
                }

                context.SaveChanges();
            }

            catch (Exception)
            {
                return(false);  //jos jotain meni pieleen
            }

            finally
            {
                context.Dispose();
            }

            return(true);  //Mobiilisovellukselle palautetaan true, kun kaikki onnistui
        }
コード例 #14
0
        public bool PostStatus(WorkAssignmentOperationModel input)
        {
            TimesheetMobileEntities entities = new TimesheetMobileEntities();


            try
            {
                WorkAssignments assignment = (from wa in entities.WorkAssignments
                                              where (wa.Active == true) &&
                                              (wa.Title == input.AssignmentTitle)
                                              select wa).FirstOrDefault();

                if (assignment == null)
                {
                    return(false);
                }
                if (input.Operation == "Start")
                {
                    int assignmentId = assignment.Id_WorkAssignment;

                    Timesheet newEntry = new Timesheet()
                    {
                        Id_WorkAssignment = assignmentId,
                        WorkComplete      = false,
                        StartTime         = DateTime.Now,
                        Active            = true,
                        CreatedAt         = DateTime.Now
                    };
                    entities.Timesheet.Add(newEntry);
                }
                else if (input.Operation == "Stop")
                {
                    int       assignmentId = assignment.Id_WorkAssignment;
                    Timesheet existing     = (from ts in entities.Timesheet
                                              where (ts.Id_WorkAssignment == assignmentId) &&
                                              (ts.Active == true)
                                              select ts).FirstOrDefault();

                    if (existing != null)
                    {
                        existing.StopTime       = DateTime.Now;
                        existing.WorkComplete   = true;
                        existing.LastModifiedAt = DateTime.Now;
                    }
                    else
                    {
                        return(false);
                    }
                }
                entities.SaveChanges();
            }
            catch
            {
                return(false);
            }
            finally
            {
                entities.Dispose();
            }
            return(true);
        }