Ejemplo n.º 1
0
        //
        // GET: /Administration/Create

        public ActionResult Create(int procedureid, int projectid)
        {
            if (!_projectuservalidationservice.UserCanEditProject(projectid))
            {
                ViewBag.ErrorMessage = "Access Denied. Please contact administrator for further assistance.";
                return(View("Error"));
            }

            ViewBag.ProcedureID = new SelectList(db.Procedures, "ProcedureID", "ProcedureLabel");

            AdministrationViewModel administrationVM = new AdministrationViewModel
            {
                ProcedureID = procedureid,
                unitList    = new SelectList(db.Units.Where(u => u.Status == "Current" && u.SIUnite.QuantityName == "Time").AsEnumerable(), "UnitID", "UnitSymbol"),
            };

            ViewBag.projectid   = projectid;
            ViewBag.procedureid = procedureid;

            return(View(administrationVM));
        }
Ejemplo n.º 2
0
        //
        // GET: /Procedure/Create

        public ActionResult Create(int projectid = 0, string procedurepurpose = "")
        {
            if (!_projectuservalidationservice.UserCanEditProject(projectid))
            {
                ViewBag.ErrorMessage = "Access Denied. Please contact administrator for further assistance.";
                return(View("Error"));
            }

            ViewBag.proceduretypelist = new SelectList(db.Options.Where(o => o.OptionFields.OptionFieldName == "Procedure Type" && o.Status == "Current").AsEnumerable(), "OptionID", "OptionValue");

            ViewBag.procedurepurpose   = procedurepurpose;
            ViewBag.MultiPARTProjectID = projectid;

            ProcedureViewModel procedureVM = new ProcedureViewModel()
            {
                MultiPARTProjectID = projectid,
                ProcedurePurposeID = db.Options.Where(p => p.Status == "Current" && p.OptionFields.OptionFieldName == "procedurepurpose").Select(p => p.OptionID).FirstOrDefault(),
                ProcedurePurpose   = procedurepurpose,
            };

            return(View(procedureVM));
        }
Ejemplo n.º 3
0
        //
        // GET: /Cohort/Create

        public ActionResult Create(int projectid = 0)
        {
            if (!_projectuservalidationservice.UserCanEditProject(projectid))
            {
                ViewBag.ErrorMessage = "Access Denied. Please contact administrator for further assistance.";
                return(View("Error"));
            }

            ViewBag.StrainList = new SelectList(db.Strains.Where(p => p.Status == "Current").AsEnumerable(), "StrainID", "StrainName");
            ViewBag.SexList    = new SelectList(db.Options.Where(c => c.Status == "Current" && c.OptionFields.OptionFieldName == "Sex").AsEnumerable(), "OptionID", "OptionValue");

            ViewBag.MultiPARTProjectID = projectid;

            CohortViewModel cohortVM = new CohortViewModel()
            {
                MultiPARTProjectID = projectid
            };

            return(View(cohortVM));
        }
Ejemplo n.º 4
0
        public ActionResult Index(int procedureid, int projectid, IEnumerable <ProcedureDetailViewModel> ProcedureDetailVM)
        {
            if (!_projectuservalidationservice.UserCanEditProject(projectid))
            {
                ViewBag.ErrorMessage = "Access Denied. Please contact administrator for further assistance.";
                return(View("Error"));
            }

            var userKey = (int)Membership.GetUser().ProviderUserKey;

            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Index", new { procedureid = procedureid, projectid = projectid }));
            }

            Procedure procedure = GetValidProcedure(procedureid);

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

            foreach (var eachProcedureDetail in ProcedureDetailVM)
            {
                if (!ProcedureDetailFieldIsValid(eachProcedureDetail.FieldID))
                {
                    ViewBag.ErrorMessage = "Data conflicts occurred. Please contact administrator for further assistance.";
                    return(View("Error"));
                }
                ;

                if (eachProcedureDetail.FieldType == EntryFieldType.Lookup.ToString() && eachProcedureDetail.Multiple == false)
                {
                    // the procedure details with the same fields
                    var ExistingProceduredetails = db.ProcedureDetails.Where(pd => pd.ProcedureDetailOptionFieldID == eachProcedureDetail.FieldID && pd.ProcedureProcedureID == procedureid);

                    foreach (var proceduredetail in ExistingProceduredetails)
                    {
                        if (proceduredetail.Status != "Deleted")
                        {
                            proceduredetail.Status        = "Deleted";
                            proceduredetail.LastUpdatedBy = userKey;
                        }
                    }
                    if (eachProcedureDetail.OptionID > 0)
                    {
                        // procedure details with the same field and same option
                        var ExistingProceduredetail = ExistingProceduredetails.Where(pd => pd.ProcedureDetailOptionID == eachProcedureDetail.OptionID);

                        if (ExistingProceduredetail.Count() == 0)
                        {
                            ProcedureDetail Newproceduredetail = new ProcedureDetail()
                            {
                                ProcedureProcedureID         = eachProcedureDetail.ProcedureID,
                                ProcedureDetailOptionFieldID = eachProcedureDetail.FieldID,
                                ProcedureDetailOptionID      = eachProcedureDetail.OptionID,

                                LastUpdatedBy = userKey,
                            };
                            db.ProcedureDetails.Add(Newproceduredetail);
                        }
                        else
                        {
                            ExistingProceduredetail.FirstOrDefault().Status        = "Current";
                            ExistingProceduredetail.FirstOrDefault().LastUpdatedBy = userKey;
                        }
                    }
                }

                if (eachProcedureDetail.FieldType == EntryFieldType.Lookup.ToString() && eachProcedureDetail.Multiple == true)
                {
                    var ExistingProceduredetails = db.ProcedureDetails.Where(pd => pd.ProcedureDetailOptionFieldID == eachProcedureDetail.FieldID && pd.ProcedureProcedureID == procedureid);

                    foreach (var proceduredetail in ExistingProceduredetails)
                    {
                        proceduredetail.Status        = "Deleted";
                        proceduredetail.LastUpdatedBy = userKey;
                    }

                    if (eachProcedureDetail.OptionIDs != null)
                    {
                        foreach (var optionID in eachProcedureDetail.OptionIDs)
                        {
                            var ExistingProceduredetail = ExistingProceduredetails.Where(pd => pd.ProcedureDetailOptionID == optionID);

                            if (ExistingProceduredetail.Count() == 0)
                            {
                                ProcedureDetail procedureDetail = new ProcedureDetail
                                {
                                    ProcedureDetailOptionFieldID = eachProcedureDetail.FieldID,
                                    ProcedureProcedureID         = eachProcedureDetail.ProcedureID,
                                    ProcedureDetailOptionID      = optionID,

                                    LastUpdatedBy = userKey,
                                };

                                db.ProcedureDetails.Add(procedureDetail);
                            }
                            else
                            {
                                ExistingProceduredetail.FirstOrDefault().Status        = "Current";
                                ExistingProceduredetail.FirstOrDefault().LastUpdatedBy = userKey;
                            }
                        }
                    }
                }
                else if (eachProcedureDetail.FieldType != EntryFieldType.Lookup.ToString())
                {
                    var ExistingProceduredetails = db.ProcedureDetails.Where(pd => pd.ProcedureDetailOptionFieldID == eachProcedureDetail.FieldID && pd.ProcedureProcedureID == procedureid);

                    //set everything to "Deleted" as a reset before adding new values
                    foreach (var proceduredetail in ExistingProceduredetails)
                    {
                        proceduredetail.Status        = "Deleted";
                        proceduredetail.LastUpdatedBy = userKey;
                    }
                    if (eachProcedureDetail.Value != null)
                    {
                        if (ExistingProceduredetails.Count() == 0)
                        {
                            ProcedureDetail proceduredetail = new ProcedureDetail()
                            {
                                ProcedureProcedureID         = eachProcedureDetail.ProcedureID,
                                ProcedureDetailValue         = eachProcedureDetail.Value,
                                ProcedureDetailOptionFieldID = eachProcedureDetail.FieldID,

                                LastUpdatedBy = (int)Membership.GetUser().ProviderUserKey,
                            };
                            db.ProcedureDetails.Add(proceduredetail);
                        }
                        else
                        {
                            ExistingProceduredetails.FirstOrDefault().ProcedureDetailValue = eachProcedureDetail.Value;
                            ExistingProceduredetails.FirstOrDefault().Status        = "Current";
                            ExistingProceduredetails.FirstOrDefault().LastUpdatedBy = userKey;
                        }
                    }
                }
            }

            db.SaveChanges();

            //      ViewBag.UpdatedMessage = "Information Updated";

            return(RedirectToAction("Details", "MultiPARTProject", new { projectid = projectid }));
        }