public ActionResult Delete(int workorderId)
        {
            bool CanDelete = true;

            Models.WorkOrder WO = DB.WorkOrders.Find(workorderId);

            if (WO != null)
            {
                #region Check

                Employee current = (Session["user"] as Models.User).Employee;

                // IF doctor or head
                if (current.JobTitle.Title == JobTitle.Doctor || current.JobTitle.Title == JobTitle.Head)
                {
                    // If I created this workroder
                    if (WO.Issuer.EmployeeId == current.EmployeeId)
                    {
                        // If WO has any done vists
                        if (WO.Visits.Any(v => v.DateConfirmed < DateTime.Now || v.Done))
                        {
                            // Can't delete
                            CanDelete = false;
                        }
                        else
                        {
                            // Can delete
                            CanDelete = true;
                        }
                    }
                    else
                    {
                        CanDelete = false;
                    }
                }
                else
                {
                    CanDelete = false;
                }

                #endregion

                if (CanDelete)
                {
                    DB.Visits.RemoveRange(WO.Visits);
                    DB.PatientWorkOrders.RemoveRange(WO.PatientWorkOrders);
                    DB.BloodSamples.RemoveRange(WO.BloodSamples);
                    DB.MaterialWorkOrders.RemoveRange(WO.MaterialWorkOrders);
                    DB.MedicineWorkOrders.RemoveRange(WO.MedicineWorkOrders);
                    DB.WorkOrders.Remove(WO);
                    DB.SaveChanges();
                }
            }

            return(Index(null));
        }
        public ActionResult Index(int?workOrderId)
        {
            //workOrderId = 2;

            if (workOrderId == null)
            {
                return(Redirect("/"));
            }

            WorkOrderDetailsViewModel vm = new WorkOrderDetailsViewModel();

            Models.WorkOrder wo = DB.WorkOrders.Find(workOrderId);

            if (wo != null)
            {
                vm.ServiceTitle     = wo.Service.ServiceTitle;
                vm.ContractorName   = wo.Contractor.DisplayName;
                vm.Disease          = "/"; // TODO LATER STORY
                vm.EnterBloodSample = wo.Service.RequiresBloodSample;
                if (vm.EnterBloodSample)
                {
                    vm.BloodVialBlueCount   = wo.BloodSamples.First().BloodVialBlueCount;
                    vm.BloodVialGreenCount  = wo.BloodSamples.First().BloodVialGreenCount;
                    vm.BloodVialRedCount    = wo.BloodSamples.First().BloodVialRedCount;
                    vm.BloodVialYellowCount = wo.BloodSamples.First().BloodVialYellowCount;
                }
                else
                {
                    vm.BloodVialBlueCount   = 0;
                    vm.BloodVialGreenCount  = 0;
                    vm.BloodVialRedCount    = 0;
                    vm.BloodVialYellowCount = 0;
                }
                vm.EnterMedicine = wo.Service.RequiresMedicine;
                if (vm.EnterMedicine)
                {
                    vm.Medicine = new List <string>();
                    for (int i = 0; i < wo.MedicineWorkOrders.Count; i++)
                    {
                        vm.Medicine.Add(wo.MedicineWorkOrders.ElementAt(i).Medicine.FullNameWithCode);
                    }
                }
                vm.Nurse = wo.Nurse.FullNameWithCode;

                // We don't need this???

                /*if (wo.NurseReplacement != null) vm.NurseReplacement = wo.NurseReplacement.FullNameWithCode;
                 * else vm.NurseReplacement = "/";*/

                // Do we need nursereplacemet here?
                // NO
                //vm.NurseReplacement = "/";

                vm.Patients = new List <string>();

                if (wo.PatientWorkOrders.Count == 0)
                {
                    if (wo.Patient != null)
                    {
                        vm.Patients.Add(wo.Patient.FullNameWithCode);
                    }
                    else
                    {
                        vm.Patients.Add("/");
                    }
                }
                else
                {
                    if (wo.Patient != null)
                    {
                        vm.Patients.Add(wo.Patient.FullNameWithCode);
                    }
                    for (int i = 0; i < wo.PatientWorkOrders.Count; i++)
                    {
                        vm.Patients.Add(wo.PatientWorkOrders.ElementAt(i).Patient.FullNameWithCode);
                    }
                }

                vm.Supervisor = wo.Issuer.FullNameWithCode;
                vm.Visits     = new List <string>();

                List <Visit> Visits = wo.Visits.OrderBy(visi => visi.DateConfirmed).ToList();

                vm.VisitIds = new List <int>();
                for (int i = 0; i < wo.Visits.Count; i++)
                {
                    Visit  v           = Visits.ElementAt(i);
                    string visitString = "";
                    if (v.Done)// TODO ADD UNCOMPLETED VISITS LATER (when we have a variable for that)
                    {
                        visitString = v.DateConfirmed.ToString("dd. MM. yyyy") + "(opravljeno), ";
                    }

                    /*else if (!v.Confirmed && v.Date.Date < DateTime.Now.Date)
                     * {
                     *  visitString = v.Date.ToString("dd. MM. yyyy") + " (neopravljeno), ";
                     * }*/
                    else
                    {
                        visitString = v.DateConfirmed.ToString("dd. MM. yyyy") + " (predvideno), ";
                    }
                    if (v.Mandatory)
                    {
                        visitString += "obvezen, ";
                    }
                    else
                    {
                        visitString += "okviren, ";
                    }

                    if (wo.Service.PreventiveVisit)
                    {
                        vm.PreventiveService = "Da";
                    }
                    else
                    {
                        vm.PreventiveService = "Ne";
                    }

                    vm.Visits.Add(visitString);
                    vm.VisitIds.Add(v.VisitId);
                }
            }
            else
            {
                return(Redirect("/"));
            }


            return(View("Index", vm));
        }