예제 #1
0
        public ActionResult DeleteCondition(string improvementId, string conditionId)
        {
            try
            {
                AgentBase       ABase          = new AgentBase();
                DatabaseContext dbx            = ABase.GetContext();
                int             nConditionId   = Convert.ToInt32(conditionId);
                int             nImprovementId = Convert.ToInt32(improvementId);

                Reco3Improvement improvement = dbx.Reco3Improvements.Where(x => x.ImprovementId == nImprovementId).First();
                if (improvement != null)
                {
                    Reco3Condition condition = dbx.Reco3Conditions.Where(x => x.Reco3ConditionId == nConditionId).First();
                    if (condition != null)
                    {
                        improvement.Conditions.Remove(condition);
                        dbx.Reco3Conditions.Remove(condition);
                        dbx.SaveChanges();
                        return(Json(new { success = true, message = "Successfully deleted condition" }, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        return(Json(new { success = false, message = "Failed to find the condition." }, JsonRequestBehavior.AllowGet));
                    }
                }
                else
                {
                    return(Json(new { success = false, message = "Failed to find the improvement for the condition." }, JsonRequestBehavior.AllowGet));
                }

                /*
                 * Reco3Improvement improvement = dbx.Reco3Improvements.Where(x => x.ImprovementId == nImprovementId).First();
                 * if (improvement != null)
                 * {
                 *  dbx.Entry(improvement).Collection(p => p.Conditions).Load();
                 *  Reco3Component conditionalComponent = dbx.Reco3Components.Where(x => x.ComponentId == nconditionPDComponentId).First();
                 *  Reco3Condition pCondition = new Reco3Condition(Convert.ToInt32(conditionPDComponentId), DateTime.Parse(conditionDate));
                 *  pCondition.ConditionalReco3Component = conditionalComponent;
                 *  improvement.Conditions.Add(pCondition);
                 *  dbx.SaveChanges();
                 *  return Json(new { success = true, message = "Successfully added condition" }, JsonRequestBehavior.AllowGet);
                 * }
                 * else
                 *  return Json(new { success = false, message = "Failed to find the improvement for the condition." }, JsonRequestBehavior.AllowGet);
                 */
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(Json(new { success = false, message = e.Message }, JsonRequestBehavior.AllowGet));
            }
            //return Json(new { success = false, message = "Fatal" }, JsonRequestBehavior.AllowGet);
        }
예제 #2
0
 public ActionResult SaveGeneral(string ImprovementId, string Alias, string Introduction, string SourceComponentId)
 {
     try
     {
         AgentBase       ABase          = new AgentBase();
         DatabaseContext dbx            = ABase.GetContext();
         int             nImprovementId = -1;
         if (ImprovementId.Length > 0)
         {
             nImprovementId = Convert.ToInt32(ImprovementId);
         }
         if (nImprovementId == -1)
         {
             int            nSourceComponentId = Convert.ToInt32(SourceComponentId);
             Reco3Component reco3Component     = dbx.CloneComponent(nSourceComponentId);
             if (reco3Component != null)
             {
                 Reco3Improvement improvement = new Reco3Improvement();
                 improvement.Name           = Alias;
                 improvement.ValidFrom      = DateTime.Parse(Introduction);
                 improvement.Reco3Component = reco3Component;
                 improvement.ComponentId    = reco3Component.ComponentId;
                 dbx.Reco3Improvements.Add(improvement);
                 dbx.SaveChanges();
                 return(Json(new { success = true, message = "Improvement successfully saved." }, JsonRequestBehavior.AllowGet));
             }
         }
         else
         {
             Reco3Improvement improvement = dbx.Reco3Improvements.Include("Reco3Component").Where(x => x.ImprovementId == nImprovementId).FirstOrDefault();
             if (improvement != null)
             {
                 improvement.Name             = Alias;
                 improvement.ValidFrom        = DateTime.Parse(Introduction);
                 dbx.Entry(improvement).State = System.Data.Entity.EntityState.Modified;
                 dbx.SaveChanges();
                 return(Json(new { success = true, message = "Improvement successfully saved." }, JsonRequestBehavior.AllowGet));
             }
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         return(Json(new { success = false, message = e.Message }, JsonRequestBehavior.AllowGet));
     }
     return(RedirectToAction("Index"));
 }
예제 #3
0
        public ActionResult DeleteImprovement(string ImprovementId)
        {
            try
            {
                AgentBase        ABase          = new AgentBase();
                DatabaseContext  dbx            = ABase.GetContext();
                int              nImprovementId = Convert.ToInt32(ImprovementId);
                Reco3Improvement improvement    = dbx.Reco3Improvements
                                                  .Include("Conditions")
                                                  .Where(x => x.ImprovementId == nImprovementId)
                                                  .First();
                if (improvement != null)
                {
                    // Ensure that all conditions are removed first!
                    if ((improvement.Conditions != null) &&
                        (improvement.Conditions.Count > 0))
                    {
                        return(Json(new { success = false, error = true, message = "Please delete all conditions before proceeding." }, JsonRequestBehavior.AllowGet));
                    }

                    // Remove the component
                    if (improvement.Reco3Component != null)
                    {
                        dbx.Reco3Components.Remove(improvement.Reco3Component);
                    }

                    // Remove link to the component
                    improvement.Reco3Component = null;

                    // Remove the improvement
                    dbx.Reco3Improvements.Remove(improvement);
                    dbx.SaveChanges();
                    return(Json(new { success = true, message = "Successfully deleted improvement" }, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json(new { success = false, error = true, message = "Failed to find the improvement." }, JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(Json(new { success = false, error = true, message = e.Message }, JsonRequestBehavior.AllowGet));
            }
            //return RedirectToAction("Index");
        }
예제 #4
0
        public ActionResult Edit(int id = 0)
        {
            if (id == -1)
            {
                Reco3ImprovementModel model = new Reco3ImprovementModel();
                model.DlgPdType   = ComponentType.ctUnknown;
                model.ReadOnly    = false;
                model.Improvement = new Reco3Improvement();
                model.Improvement.ImprovementId = -1;
                model.HasConditions             = false;
                model.CreatingNew = true;
                return(View(model));
            }
            else
            {
                AgentBase       ABase = new AgentBase();
                DatabaseContext dbx   = ABase.GetContext();

                Reco3Improvement job = dbx.Reco3Improvements.Include("Reco3Component").Where(x => x.ImprovementId == id).FirstOrDefault();
                //Reco3Improvement job = dbx.Reco3Improvements.ToList().Find(x => x.ImprovementId == id);
                if (job != null)
                {
                    Reco3ImprovementModel model = new Reco3ImprovementModel();
                    model.CreatingNew   = false;
                    model.DlgPdType     = ComponentType.ctUnknown;
                    model.Improvement   = job;
                    model.ReadOnly      = false;
                    model.HasConditions = false;
                    if (job.Reco3Component.Component_Type == Reco3Common.Reco3_Enums.ComponentType.ctGearbox)
                    {
                        model.HasConditions = true;
                    }

                    return(View(model));
                }
            }
            return(RedirectToAction("Index"));
        }
예제 #5
0
        public ActionResult UploadComponentXml(string ImprovementId)
        {
            try
            {
                int nImprovementId = -1;
                if (ImprovementId.Contains("-1") == true)
                {
                    return(Json(new { success = false, message = "Failed to upload componentdata. Internal error: ImprovementId is invalid." }, JsonRequestBehavior.AllowGet));
                }

                nImprovementId = Convert.ToInt32(ImprovementId);

                AgentBase        ABase       = new AgentBase();
                DatabaseContext  dbx         = ABase.GetContext();
                Reco3Improvement improvement = dbx.Reco3Improvements.Include("Reco3Component").Where(x => x.ImprovementId == nImprovementId).First();
                if (improvement != null)
                {
                    /*
                     * if (map.Protected == true)
                     * {
                     *  return Json(new { success = false, message = "Roadmap is locked for further changes. Action is aborted." }, JsonRequestBehavior.AllowGet);
                     * }
                     */
                    if (Request.Files.Count > 0)
                    {
                        var  root       = "/Filedrop";
                        bool folderpath = System.IO.Directory.Exists(HttpContext.Server.MapPath(root));
                        if (folderpath == true)
                        {
                            System.IO.Directory.Delete(HttpContext.Server.MapPath(root), true);
                        }
                        System.IO.Directory.CreateDirectory(HttpContext.Server.MapPath(root));


                        for (int i = 0; i < Request.Files.Count; i++)
                        {
                            // First save the stream to disk
                            var files    = Request.Files[i];
                            var fileName = System.IO.Path.GetFileName(files.FileName);
                            var path     = System.IO.Path.Combine(HttpContext.Server.MapPath(root), fileName);
                            files.SaveAs(path);

                            var fs = new FileStream(path, FileMode.Open, FileAccess.Read,
                                                    FileShare.ReadWrite | FileShare.Delete);
                            using (StreamReader reader = new StreamReader(fs, Encoding.UTF8))
                            {
                                string content = reader.ReadToEnd();

                                improvement.Reco3Component.XML = content;
                                dbx.SaveChanges();
                                return(Json(new { success = true, message = "Improvement successfully updated with new componentdata." }, JsonRequestBehavior.AllowGet));
                            }
                        }
                        return(Json(new { success = false, message = "Failed to save Improvement. Internal error." }, JsonRequestBehavior.AllowGet));
                    }
                }
            }
            catch (Exception ex)
            {
                return(Json(new { success = false, message = ex.Message }, JsonRequestBehavior.AllowGet));
            }
            return(Json(new { success = false, message = "Fatal error!" }, JsonRequestBehavior.AllowGet));
        }
예제 #6
0
        public ActionResult SaveCondition(string improvementId, string conditionId, string pdCondition, string conditionPDComponentId, string conditionDate, string tagId, string tagValue)
        {
            try
            {
                AgentBase       ABase            = new AgentBase();
                DatabaseContext dbx              = ABase.GetContext();
                bool            bAddingCondition = true;
                int             nConditionId     = -1;
                if (conditionId.Length > 0)
                {
                    nConditionId = Convert.ToInt32(conditionId);
                }
                if (nConditionId != -1)
                {
                    bAddingCondition = false;
                }

                bool             bPdCondition            = Convert.ToBoolean(pdCondition);
                int              nconditionPDComponentId = -1;
                int              ntagId         = -1;
                int              nImprovementId = Convert.ToInt32(improvementId);
                Reco3Improvement improvement    = dbx.Reco3Improvements.Where(x => x.ImprovementId == nImprovementId).First();
                if (improvement == null)
                {
                    return(Json(new { success = false, message = "Failed to find the improvement for the condition." }, JsonRequestBehavior.AllowGet));
                }
                // Load the existing conditions
                dbx.Entry(improvement).Collection(p => p.Conditions).Load();

                if (bAddingCondition == true)
                {
                    Reco3Condition pCondition = new Reco3Condition();
                    pCondition.ValidFrom = DateTime.Parse(conditionDate);
                    if (bPdCondition == true)
                    {
                        nconditionPDComponentId   = Convert.ToInt32(conditionPDComponentId);
                        pCondition.Condition_Type = Reco3Condition.ConditionType.condtionalComponent;
                        Reco3Component conditionalComponent = dbx.Reco3Components.Where(x => x.ComponentId == nconditionPDComponentId).First();
                        pCondition.ConditionalReco3Component = conditionalComponent;
                    }
                    else
                    {
                        ntagId = Convert.ToInt32(tagId);
                        Reco3Tag tag = dbx.Reco3Tags.Where(x => x.Reco3TagId == ntagId).First();
                        pCondition.Condition_Type            = Reco3Condition.ConditionType.conditionalTag;
                        pCondition.ConditionalReco3Component = null;
                        pCondition.Reco3Tag      = tag;
                        pCondition.Reco3TagId    = tag.Reco3TagId;
                        pCondition.Reco3TagValue = tagValue;
                    }

                    improvement.Conditions.Add(pCondition);
                    dbx.SaveChanges();
                    return(Json(new { success = true, message = "Successfully added condition" }, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    Reco3Condition pCondition = improvement.Conditions.Where(x => x.Reco3ConditionId == nConditionId).First();
                    pCondition.ValidFrom = DateTime.Parse(conditionDate);
                    if (bPdCondition == true)
                    {
                        pCondition.Condition_Type = Reco3Condition.ConditionType.condtionalComponent;
                        nconditionPDComponentId   = Convert.ToInt32(conditionPDComponentId);
                        Reco3Component conditionalComponent = dbx.Reco3Components.Where(x => x.ComponentId == nconditionPDComponentId).First();
                        pCondition.ConditionalReco3Component = conditionalComponent;
                    }
                    else
                    {
                        ntagId = Convert.ToInt32(tagId);
                        Reco3Tag tag = dbx.Reco3Tags.Where(x => x.Reco3TagId == ntagId).First();
                        pCondition.Condition_Type            = Reco3Condition.ConditionType.conditionalTag;
                        pCondition.ConditionalReco3Component = null;
                        pCondition.Reco3Tag      = tag;
                        pCondition.Reco3TagId    = tag.Reco3TagId;
                        pCondition.Reco3TagValue = tagValue;
                    }
                    dbx.Entry(pCondition).State = System.Data.Entity.EntityState.Modified;
                    dbx.SaveChanges();
                    return(Json(new { success = true, message = "Successfully updated condition" }, JsonRequestBehavior.AllowGet));
                }
                //return Json(new { success = false, message = "Failed to find the improvement for the condition." }, JsonRequestBehavior.AllowGet);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(Json(new { success = false, message = e.Message }, JsonRequestBehavior.AllowGet));
            }
            //return Json(new { success = false, message = "Fatal" }, JsonRequestBehavior.AllowGet);
        }