private void InstitutionConfFlowByENDVirusSaveUpdate(long?IdInstConf, InstitutionConfiguration catalog)
        {
            int[] IdVirusFlow = catalog.VirusFlowSelected;

            foreach (var item in IdVirusFlow)
            {
                var regCVF = db.CatViruFlows.Where(x => x.ID == item).FirstOrDefault();
                if (regCVF != null)
                {
                    InstitutionConfEndFlowByVirus oElement = new InstitutionConfEndFlowByVirus();

                    oElement.id_InstCnf       = (long)IdInstConf;
                    oElement.id_Lab           = (long)catalog.InstitutionToID;
                    oElement.id_priority_flow = catalog.Priority;

                    oElement.id_Cat_TestType      = regCVF.TestType_ID;
                    oElement.value_Cat_TestResult = regCVF.TestResult_ID;
                    oElement.id_Cat_VirusType     = regCVF.VirusType_ID;
                    oElement.id_Cat_Subtype       = regCVF.VirusSubtype_ID;
                    //oElement.id_InstCnfFlowByVirus = item;

                    db.Entry(oElement).State = EntityState.Added;
                    db.SaveChanges();

                    oElement = null;
                }
            } // END foreach
        }
        //public ActionResult EditPost(int? id)
        public ActionResult EditPost(InstitutionConfiguration oInstConf)
        {
            int?id = (Int32)oInstConf.ID;

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var catalog = db.InstitutionsConfiguration.Find(id);

            if (TryUpdateModel(catalog, "",
                               new string[] { "InstitutionFromID", "InstitutionToID", "InstitutionParentID", "Priority", "Conclusion", "OpenAlways" }))
            {
                try
                {
                    db.SaveChanges();
                    InstitutionConfFlowByVirusSaveUpdate(id, oInstConf.VirusFlowSelected, oInstConf, 2);

                    return(RedirectToAction("Index"));
                }
                catch (RetryLimitExceededException /* dex */)
                {
                    ModelState.AddModelError("", "No es posible guardar los datos. Intente de nuevo, si el problema persiste contacte al administrador.");
                }
            }
            return(View(catalog));
        }
        // GET: CatInstitucionConf/Create
        public ActionResult Create()
        {
            //****
            InstitutionConfiguration oInCoModel = new InstitutionConfiguration();

            var oList = (from regis in db.CatViruFlows as IQueryable <CatVirusFlow>
                         select new
            {
                ID = regis.ID.ToString(),
                Valor = regis.CatTestTypes.description + " - " + regis.CatTestResults.description +
                        (regis.CatVirusTypes.ID <= 0 ? "" : " - " + regis.CatVirusTypes.SPA) + (regis.VirusSubtype_ID == null ? "" : " - " + regis.CatVirusSubTypes.SPA) +
                        (regis.VirusLinaje_ID == null ? "" : " - " + regis.CatVirusLinaje.SPA)
            });

            MultiSelectList oListMS;

            oListMS = new MultiSelectList(oList.ToList(), "ID", "Valor");
            oInCoModel.VirusFlowCollection = oListMS;

            //****
            PopulateDepartmentsDropDownList();

            //****
            return(View(oInCoModel));
        }
        // GET: CatInstitucionConf/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var catalogo = db.InstitutionsConfiguration.Find(id);

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

            PopulateDepartmentsDropDownList(catalogo.InstitutionFromID, catalogo.InstitutionToID, catalogo.InstitutionParentID);
            //return View(catalogo);
            //***
            InstitutionConfiguration oInCoModel = new InstitutionConfiguration();

            var oList = (from regis in db.CatViruFlows as IQueryable <CatVirusFlow>
                         select new
            {
                ID = regis.ID.ToString(),
                Valor = regis.CatTestTypes.description + " - " + regis.CatTestResults.description +
                        (regis.CatVirusTypes.ID <= 0 ? "" : " - " + regis.CatVirusTypes.SPA) + (regis.VirusSubtype_ID == null ? "" : " - " + regis.CatVirusSubTypes.SPA) +
                        (regis.VirusLinaje_ID == null ? "" : " - " + regis.CatVirusLinaje.SPA)
            });

            MultiSelectList oListMS;
            var             aSele = db.InstitutionConfFlowByVirus.Where(m => m.InstConf_ID == id).ToList();

            if (aSele != null)
            {
                int[] aSelected = new int[aSele.Count];

                for (int i = 0; i < aSele.Count; i++)
                {
                    aSelected[i] = (int)aSele[i].VirusFlow_ID;
                }

                oListMS = new MultiSelectList(oList.ToList(), "ID", "Valor", aSelected);
            }
            else
            {
                oListMS = new MultiSelectList(oList.ToList(), "ID", "Valor");
            }

            oInCoModel.VirusFlowCollection = oListMS;
            oInCoModel.Priority            = catalogo.Priority;
            oInCoModel.Conclusion          = catalogo.Conclusion;
            oInCoModel.OpenAlways          = catalogo.OpenAlways;

            return(View(oInCoModel));
        }
Esempio n. 5
0
 public ActionResult Create([Bind(Include = "InstitutionFromID, InstitutionToID, InstitutionParentID, Priority, Conclusion, OpenAlways")] InstitutionConfiguration catalog)
 {
     try
     {
         if (ModelState.IsValid)
         {
             db.InstitutionsConfiguration.Add(catalog);
             db.SaveChanges();
             return(RedirectToAction("Index"));
         }
     }
     catch (RetryLimitExceededException dex)
     {
         ModelState.AddModelError("", "No es posible guardar los datos. Intente de nuevo, si el problema persiste contacte al administrador." + "\n" + dex.Message);
     }
     return(View(catalog));
 }
        //public ActionResult Delete(int id)
        public ActionResult Delete(InstitutionConfiguration oInstConf)
        {
            long?id = 0;

            try
            {
                id = oInstConf.ID;
                InstitutionConfFlowByVirusSaveUpdate(id, null, oInstConf, 3);

                var catalog = db.InstitutionsConfiguration.Find(id);
                db.InstitutionsConfiguration.Remove(catalog);
                db.SaveChanges();
            }
            catch (RetryLimitExceededException /* dex */)
            {
                //Log the error (uncomment dex variable name and add a line here to write a log.
                return(RedirectToAction("Delete", new { id = id, saveChangesError = true }));
            }
            return(RedirectToAction("Index"));
        }
        private void InstitutionConfFlowByVirusSaveUpdate(long?IdInstConf, int[] IdVirusFlow, InstitutionConfiguration catalog, int operacion)
        {
            try
            {
                if (operacion == 2 || operacion == 3)               // Edit, Delete
                {
                    //**** Eliminando de InstitutionConfEndFlowByVirus
                    var instConfEFV = db.InstitutionConfEndFlowByVirus.Where(j => j.id_InstCnf == IdInstConf).ToList();
                    if (instConfEFV != null)
                    {
                        foreach (var item in instConfEFV)
                        {
                            db.Entry(item).State = EntityState.Deleted;
                            db.InstitutionConfEndFlowByVirus.Remove(item);
                            db.SaveChanges();
                        }
                    }

                    // Eliminando de: InstitutionConfFlowByVirus
                    var instConfFV = db.InstitutionConfFlowByVirus.Where(j => j.InstConf_ID == IdInstConf).ToList();
                    if (instConfFV != null)
                    {
                        foreach (var item in instConfFV)
                        {
                            db.Entry(item).State = EntityState.Deleted;
                            db.InstitutionConfFlowByVirus.Remove(item);
                            db.SaveChanges();
                        }
                    }
                }

                if (operacion == 1 || operacion == 2)       // Create, Edit
                {
                    if (operacion == 1)                     // Create
                    {
                        //var instconf = db.InstitutionsConfiguration.OrderBy(x => x.ID).LastOrDefault();
                        var instconf = db.InstitutionsConfiguration.OrderByDescending(x => x.ID).FirstOrDefault();
                        if (instconf != null)
                        {
                            IdInstConf = instconf.ID;
                        }
                    }

                    foreach (var item in IdVirusFlow)
                    {
                        InstitutionConfFlowByVirus oElement = new InstitutionConfFlowByVirus();

                        oElement.InstConf_ID     = IdInstConf;
                        oElement.VirusFlow_ID    = item;
                        db.Entry(oElement).State = EntityState.Added;
                        db.SaveChanges();
                        oElement = null;
                    }

                    InstitutionConfFlowByENDVirusSaveUpdate(IdInstConf, catalog);
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }
        }