public string DeleteScenarioItem(string idItem, string dataType)
        {
            ResponseFileDownload data = new ResponseFileDownload();

            /* Get current grid */
            if (this.TempData["ScenarioGridItems"] != null)
            {
                data = (ResponseFileDownload)this.TempData["ScenarioGridItems"];

                /* Remove suspect */
                if (dataType.Equals("S"))
                {
                    data.Suspects.Remove(idItem);
                }

                /* Remove local */
                else if (dataType.Equals("L"))
                {
                    data.Locals.Remove(idItem);
                }

                /* Remove gun */
                else if (dataType.Equals("G"))
                {
                    data.Guns.Remove(idItem);
                }
                return(ScenarioGridGenerator("", dataType, data));
            }
            else
            {
                return("");
            }
        }
        public ActionResult GenerateScenarioJsonFile()
        {
            /* Get the scenario model to save into a file */
            ResponseFileDownload fileToDownload = new ResponseFileDownload();

            /* Get current grid */
            if (this.TempData["ScenarioGridItems"] != null)
            {
                fileToDownload = (ResponseFileDownload)this.TempData["ScenarioGridItems"];
            }

            this.TempData["ScenarioGridItems"] = fileToDownload;

            try
            {
                JsonSerializer serializer = new JsonSerializer();
                serializer.Converters.Add(new JavaScriptDateTimeConverter());
                serializer.NullValueHandling = NullValueHandling.Ignore;

                using (StreamWriter sw = new StreamWriter(@"c:\temp\data"))
                    using (JsonWriter writer = new JsonTextWriter(sw))
                    {
                        serializer.Serialize(writer, fileToDownload);
                    }
            }
            catch (Exception e)
            {
                Error("Ocorreu um erro ao gerar o arquivo: " + e.Message);
                return(View("Scenario"));
            }
            Success("Arquivo de cenĂ¡rio gerado com sucesso na pasta C:\\TEMP!");
            return(View("Scenario"));
        }
        public string AddScenarioItem(string item, string dataType)
        {
            ResponseFileDownload data = new ResponseFileDownload();

            /* Get current grid */
            if (this.TempData["ScenarioGridItems"] != null)
            {
                data = (ResponseFileDownload)this.TempData["ScenarioGridItems"];
            }
            else
            {
                data.Guns     = new List <string>();
                data.Locals   = new List <string>();
                data.Suspects = new List <string>();
            }

            if (item != null)
            {
                return(ScenarioGridGenerator(item, dataType, data));
            }
            else
            {
                return("");
            }
        }
        private string ScenarioGridGenerator(string item, string dataType, ResponseFileDownload data)
        {
            StringBuilder sb = new StringBuilder();

            /* Generate table header */
            sb.AppendLine("<table class=\"table table-hover\">");
            sb.AppendLine(" <thead>");
            sb.AppendLine("   <tr>");
            sb.AppendLine("     <th>#</th>");
            sb.AppendLine("     <th>Nome</th>");
            sb.AppendLine("     <th>Excluir</th>");
            sb.AppendLine("   </tr>");
            sb.AppendLine(" </thead>");
            sb.AppendLine(" <tbody>");



            /* Suspect */
            if (dataType.Equals("S"))
            {
                if (item != "")
                {
                    data.Suspects.Add(item);
                }

                /* Render Suspects */
                for (int i = 0; i < data.Suspects.Count(); i++)
                {
                    sb.AppendLine("     <tr>");
                    sb.AppendLine("         <td>");
                    sb.AppendLine(i.ToString());
                    sb.AppendLine("         </td>");
                    sb.AppendLine("         <td>");
                    sb.AppendLine(data.Suspects[i]);
                    sb.AppendLine("         </td>");
                    sb.AppendLine("         <td>");
                    sb.AppendLine(string.Concat("<a href=\"javascript:DeleteScenarioItem('", data.Suspects[i].ToString(), "','", "S", "');\"><img src=\"" + Url.Content("~/Content/img/glyphicons_197_remove.png") + "\"></a>"));
                    sb.AppendLine("         </td>");
                }
            }
            /* Local */
            if (dataType.Equals("L"))
            {
                if (item != "")
                {
                    data.Locals.Add(item);
                }

                /* Render Locals */
                for (int i = 0; i < data.Locals.Count(); i++)
                {
                    sb.AppendLine("     <tr>");
                    sb.AppendLine("         <td>");
                    sb.AppendLine(i.ToString());
                    sb.AppendLine("         </td>");
                    sb.AppendLine("         <td>");
                    sb.AppendLine(data.Locals[i]);
                    sb.AppendLine("         </td>");
                    sb.AppendLine("         <td>");
                    sb.AppendLine(string.Concat("<a href=\"javascript:DeleteScenarioItem('", data.Locals[i].ToString(), "','", "L", "');\"><img src=\"" + Url.Content("~/Content/img/glyphicons_197_remove.png") + "\"></a>"));
                    sb.AppendLine("         </td>");
                }
            }
            /* Suspect */
            if (dataType.Equals("G"))
            {
                if (item != "")
                {
                    data.Guns.Add(item);
                }

                /* Render Guns */
                for (int i = 0; i < data.Guns.Count(); i++)
                {
                    sb.AppendLine("     <tr>");
                    sb.AppendLine("         <td>");
                    sb.AppendLine(i.ToString());
                    sb.AppendLine("         </td>");
                    sb.AppendLine("         <td>");
                    sb.AppendLine(data.Guns[i]);
                    sb.AppendLine("         </td>");
                    sb.AppendLine("         <td>");
                    sb.AppendLine(string.Concat("<a href=\"javascript:DeleteScenarioItem('", data.Guns[i].ToString(), "','", "G", "');\"><img src=\"" + Url.Content("~/Content/img/glyphicons_197_remove.png") + "\"></a>"));
                    sb.AppendLine("         </td>");
                }
            }

            this.TempData["ScenarioGridItems"] = data;


            sb.AppendLine(" </tbody>");
            sb.AppendLine("</tbody>");

            return(sb.ToString());
        }