Esempio n. 1
0
        public static void TryUpdating(Averia averia)
        {
            //Hate to do it this way but it was already written like this from a previews version, 
            //made some small modifcations and reused it.
            Exception ex = repo.TryDeleting(averia.ID); 

            if (ex != null)
                throw new Exception(ex.Message);

            else
            {
                ThrowErrors(repo.TryCreating(averia));
            }
        }
Esempio n. 2
0
 public void TryCreating(Averia averia)
 {
     ThrowErrors(repo.TryCreating(averia));
 }
Esempio n. 3
0
        public Exception TryCreating(Averia averia)
        {
            using (SqlConnection conn = new SQL().GetLocalConnection())
            {
                conn.Open();

                SqlCommand cmd = new SqlCommand(@"INSERT INTO Averias(NumeroControl, FechaNotificacion, FechaAveria, Hora, Reportante, Causante, UsuariosAfectados
                                                , ServiciosAfectados, Direccion, Descripcion, Causa, AccionTomada, EmpleadoContactar, PrimeraEvidenciaPath
                                                , SegundaEvidenciaPath, TerceraEvidenciaPath, CuartaEvidenciaPath, Inspector, FechaUsoOficial, AutorizadoPor, Informe
                                                , TieneAviso, Municipio, InspectorEvidenciasPath, InspectorEvidenciasPath2, InspectorEvidenciasPath3, InspectorEvidenciasPath4, OperadorAfectado)
                                                 VALUES (@NumeroControl, @FechaNotificacion, @FechaAveria, @Hora, @Reportante, @Causante, @UsuariosAfectados
                                                , @ServiciosAfectados, @Direccion, @Descripcion, @Causa, @AccionTomada, @EmpleadoContactar, @PrimeraEvidenciaPath
                                                , @SegundaEvidenciaPath, @TerceraEvidenciaPath, @CuartaEvidenciaPath, @Inspector, @FechaUsoOficial, @AutorizadoPor, @Informe
                                                , @TieneAviso, @Municipio, @InspectorEvidenciasPath, @InspectorEvidenciasPath2, @InspectorEvidenciasPath3
                                                , @InspectorEvidenciasPath4, @OperadorAfectado);"
                                                , conn);

                #region Params

                cmd.Parameters.AddWithValue("NumeroControl", averia.NumeroControl.NumControlText);

                cmd.Parameters.AddWithValue("OperadorAfectado", averia.OperadorAfectado);

                cmd.Parameters.AddWithValue("Municipio", averia.Municipio);

                cmd.Parameters.AddWithValue("TieneAviso", averia.TieneAviso);

                cmd.Parameters.AddWithValue("FechaNotificacion", averia.FechaNotificacion);

                cmd.Parameters.AddWithValue("FechaAveria", averia.FechaAveria);

                cmd.Parameters.AddWithValue("Reportante", averia.Reportante);

                cmd.Parameters.AddWithValue("Hora", averia.Hora);

                cmd.Parameters.AddWithValue("Causante", averia.Causante);

                cmd.Parameters.AddWithValue("UsuariosAfectados", averia.UsuariosAfectados);

                cmd.Parameters.AddWithValue("ServiciosAfectados", averia.ServiciosAfectados);

                cmd.Parameters.AddWithValue("Direccion", averia.Direccion);

                cmd.Parameters.AddWithValue("Descripcion", averia.Descripcion);

                cmd.Parameters.AddWithValue("Causa", averia.Causa);

                cmd.Parameters.AddWithValue("AccionTomada", averia.AccionTomada);

                cmd.Parameters.AddWithValue("EmpleadoContactar", averia.EmpleadoContactar);

                cmd.Parameters.AddWithValue("PrimeraEvidenciaPath", averia.EvidenciasPath.Count > 0 ? averia.EvidenciasPath.ElementAt(0) : string.Empty);

                cmd.Parameters.AddWithValue("SegundaEvidenciaPath", averia.EvidenciasPath.Count > 1 ? averia.EvidenciasPath.ElementAt(1) : string.Empty);

                cmd.Parameters.AddWithValue("TerceraEvidenciaPath", averia.EvidenciasPath.Count > 2 ? averia.EvidenciasPath.ElementAt(2) : string.Empty);

                cmd.Parameters.AddWithValue("CuartaEvidenciaPath", averia.EvidenciasPath.Count > 3 ? averia.EvidenciasPath.ElementAt(3) : string.Empty);                

                cmd.Parameters.AddWithValue("Inspector", averia.Inspector);

                cmd.Parameters.AddWithValue("FechaUsoOficial", averia.FechaUsoOficial);

                cmd.Parameters.AddWithValue("AutorizadoPor", averia.AutorizadoPor);

                cmd.Parameters.AddWithValue("Informe", averia.Informe);

                cmd.Parameters.AddWithValue("InspectorEvidenciasPath", averia.InspectorEvidenciasPath.ElementAt(0));

                cmd.Parameters.AddWithValue("InspectorEvidenciasPath2", averia.InspectorEvidenciasPath.ElementAt(1));

                cmd.Parameters.AddWithValue("InspectorEvidenciasPath3", averia.InspectorEvidenciasPath.ElementAt(2));

                cmd.Parameters.AddWithValue("InspectorEvidenciasPath4", averia.InspectorEvidenciasPath.ElementAt(3));  

                #endregion

                    using (SqlTransaction transaction = conn.BeginTransaction())
                    {
                        cmd.Transaction = transaction;

                        try
                        {
                            cmd.ExecuteNonQuery();

                            transaction.Commit();

                            return null;
                        }

                        catch (SqlException ex)
                        {
                            transaction.Rollback();

                            #region Log errores
                            String errorLog = "Date: " + DateTime.Now.ToLongDateString() + "\r\n NumeroControl:" + averia.NumeroControl.NumControlText
                                                + "\r\n Message: " + ex.Message + "\r\n Source: "
                                                + ex.Source + "\r\n Stacktrace: " + ex.StackTrace + "\r\n TargetSite: " + ex.TargetSite.ToString() + "\r\n\r\n";

                            //File.WriteAllText("AveriasLog.txt", errorLog);

                            return ex;

                            #endregion
                        }
                    }
            }
        }
Esempio n. 4
0
        public static LinkedList<Averia> GetAverias()
        {
            LinkedList<Averia> averias = new LinkedList<Averia>();

            using (SqlConnection conn = new SQL().GetLocalConnection())
            {
                SqlCommand cmd = new SqlCommand(@"SELECT * FROM Averias", conn);

                conn.Open();

                cmd.ExecuteNonQuery();

                SqlDataReader reader = cmd.ExecuteReader();

                #region Build averia

                Averia averia = new Averia();

                while (reader.Read())
                {
                    int col = 0;

                    averia = new Averia()
                    {
                        NumeroControl = new NumeroControl()
                        {
                            NumControlText = reader.GetString(col++)
                        },

                        FechaNotificacion = reader.GetDateTime(col++),

                        ID = reader.GetInt32(col++),

                        FechaAveria = reader.GetDateTime(col++),

                        Hora = reader.GetString(col++),

                        Reportante = reader.GetString(col++),

                        Causante = reader.GetString(col++),

                        UsuariosAfectados = reader.GetString(col++),

                        ServiciosAfectados = reader.GetString(col++),

                        Direccion = reader.GetString(col++),

                        Descripcion = reader.GetString(col++),

                        Causa = reader.GetString(col++),

                        AccionTomada = reader.GetString(col++),

                        EmpleadoContactar = reader.GetString(col++)
                    };

                    averia.EvidenciasPath.AddLast(reader.GetString(col++));

                    averia.EvidenciasPath.AddLast(reader.GetString(col++));

                    averia.EvidenciasPath.AddLast(reader.GetString(col++));

                    averia.EvidenciasPath.AddLast(reader.GetString(col++));

                    averia.Inspector = reader.GetString(col++);

                    averia.FechaUsoOficial = reader.GetDateTime(col++);

                    averia.AutorizadoPor = reader.GetString(col++);

                    averia.Informe = reader.GetString(col++);

                    averia.TieneAviso = reader.GetBoolean(col++);

                    averia.Municipio = reader.GetString(col++);

                    averia.InspectorEvidenciasPath.AddLast(reader.GetString(col++));

                    averia.InspectorEvidenciasPath.AddLast(reader.GetString(col++));

                    averia.InspectorEvidenciasPath.AddLast(reader.GetString(col++));

                    averia.InspectorEvidenciasPath.AddLast(reader.GetString(col++));

                    averia.OperadorAfectado = reader.GetString(col++);

                    averias.AddLast(averia);
                #endregion

                }

                return averias;
            }
        }
Esempio n. 5
0
        protected void guardarBtn_Click(object sender, EventArgs e)
        {
            #region Init averia

            Averia averia = new Averia()
            {
                AccionTomada = AccionTxtBx.Text.ToUpper(),

                TieneAviso = sinAvisoChkBx.Checked,

                Causa = causaTxtBx.Text.ToUpper(),

                Causante = causingCompanyTxtBx.Text.ToUpper(),

                Descripcion = descTxtBx.Text.ToUpper(),

                Direccion = direccionTxtBx.Text.ToUpper(),

                EmpleadoContactar = contactEmpTxtBx.Text.ToUpper(),

                FechaNotificacion = Convert.ToDateTime(fechaTxtBx.Text),

                FechaAveria = Convert.ToDateTime(fechaAveriaTxtBx.Text),

                Hora = horaTxtBx.Text.ToUpper(),

                Reportante = reportingCompanyTxtBx.Text.ToUpper(),

                ServiciosAfectados = serviciosAfectadosTxtBx.Text.ToUpper(),

                UsuariosAfectados = usuariosAfectadosTxtBx.Text.ToUpper(),

                NumeroControl = new NumeroControl()
                {
                    NumControlText = numAvisoTxtBx.Text
                },

                Municipio = municipioDDL.SelectedValue,

                OperadorAfectado = operadorHF.Value
            };

            //# causes problems when used on a dir name
            string evidenciaFullDirPath = string.Format(@"{0}/{1}", Averia.GetEvidenciaInitialPath(), numAvisoTxtBx.Text.Replace("#", "_"));

            #endregion            

            if (Request.QueryString["Id"] == null)            
            {
                #region Create

                #region Evidencia stuff                                                                                                                             

                //Create averia dir if don't exist
                if (!Directory.Exists(Server.MapPath(evidenciaFullDirPath)))
                    Directory.CreateDirectory(Server.MapPath(evidenciaFullDirPath));

                #region Init evidencia path list and save files

                if (primeraEvidenciaFileUp.HasFile)
                {
                    averia.EvidenciasPath.AddLast(string.Format(@"{0}/{1}", evidenciaFullDirPath, primeraEvidenciaFileUp.PostedFile.FileName));

                    primeraEvidenciaFileUp.SaveAs(Server.MapPath(averia.EvidenciasPath.ElementAt(0)));
                }

                else
                {
                    averia.EvidenciasPath.AddLast(string.Empty);
                }

                if (segundaEvidenciaFileUp.HasFile)
                {
                    averia.EvidenciasPath.AddLast(string.Format(@"{0}/{1}", evidenciaFullDirPath, segundaEvidenciaFileUp.PostedFile.FileName));

                    segundaEvidenciaFileUp.SaveAs(Server.MapPath(averia.EvidenciasPath.ElementAt(1)));
                }

                else
                {
                    averia.EvidenciasPath.AddLast(string.Empty);
                }

                if (terceraEvidenciaFileUp.HasFile)
                {
                    averia.EvidenciasPath.AddLast(string.Format(@"{0}/{1}", evidenciaFullDirPath, terceraEvidenciaFileUp.PostedFile.FileName));

                    terceraEvidenciaFileUp.SaveAs(Server.MapPath(averia.EvidenciasPath.ElementAt(2)));
                }

                else
                {
                    averia.EvidenciasPath.AddLast(string.Empty);
                }

                if (cuartaEvidenciaFileUp.HasFile)
                {
                    averia.EvidenciasPath.AddLast(string.Format(@"{0}/{1}", evidenciaFullDirPath, cuartaEvidenciaFileUp.PostedFile.FileName));

                    cuartaEvidenciaFileUp.SaveAs(Server.MapPath(averia.EvidenciasPath.ElementAt(3)));
                }

                else
                {
                    averia.EvidenciasPath.AddLast(string.Empty);
                }

                #region inspector img paths

                //Empty cause when creating won't save anything. Once updating it's much easier to work with a filled list than an empty one
                averia.InspectorEvidenciasPath.AddLast(string.Empty);

                averia.InspectorEvidenciasPath.AddLast(string.Empty);

                averia.InspectorEvidenciasPath.AddLast(string.Empty);

                averia.InspectorEvidenciasPath.AddLast(string.Empty); 

                #endregion

                #endregion

                #endregion

                new AveriasServicio().TryCreating(averia);

                #region Email stuff

                try
                {
                    LinkedList<string> to = new LinkedList<string>();

                    LinkedList<Mail> mails = new MailServicio().GetMailMsgs();

                    to.AddLast(Email.GetDtopEmail());

                    if (Network.HasInternetConnection())
                    {
                        #region Sistema

                        SendEmail(to, "*****@*****.**",
                                        mails.ElementAt((int)Mail.Notifications.NuevaAveria).Subject,
                                        mails.ElementAt((int)Mail.Notifications.NuevaAveria).Body.Replace("@NumControl", numAvisoTxtBx.Text), new LinkedList<string>()); 

                        #endregion

                        #region Operador

                        to = new LinkedList<string>();

                        //Get operadores from hf
                        string[] operadoresTxtBxSplit = operadorHF.Value.Split(',');

                        //If there's more than one operadoor afectado
                        if (operadoresTxtBxSplit.Count() > 1)
                        {
                            for (int i = 0; i < operadoresTxtBxSplit.Count(); i++)
                            {
                                Operador operador = new SolicitudesInicialesServicio().GetOperadorByName(operadoresTxtBxSplit[i]);

                                to.AddLast(operador.Email);
                            }
                        }

                        else
                        {
                            Operador operador = new SolicitudesInicialesServicio().GetOperadorByName(operadorHF.Value);

                            to.AddLast(operador.Email);
                        }

                        SendEmail(to, "*****@*****.**",
                        mails.ElementAt((int)Mail.Notifications.OperadorAfectado).Subject.Replace("@PUEBLO", averia.Municipio),
                        mails.ElementAt((int)Mail.Notifications.OperadorAfectado).Body.Replace("@NumControl", numAvisoTxtBx.Text).Replace("@PUEBLO", averia.Municipio)
                        , new LinkedList<string>()); 

                        #endregion
                    }
                }

                catch (Exception)
                {
                } 

                #endregion

                #endregion
            }

            else
            {
                #region Edit

                User user = Session["UserObj"] == null ? new User() : (User)Session["UserObj"];

                #region Set up evidencias

                LinkedList<string> newEvidencias = new LinkedList<string>(),
                                   newInspectorEvidencias = new LinkedList<string>(),
                                   evidenciasExitentes = (LinkedList<string>)ViewState["Evidencias"],
                                   inspectorEvidenciasExistentes = (LinkedList<string>)ViewState["EvidenciasInspector"];

                #region popular evidencias

                #region 1ra
                if (primeraEvidenciaFileUp.HasFile)
                {
                    averia.EvidenciasPath.AddLast(string.Format(@"{0}/{1}", evidenciaFullDirPath, primeraEvidenciaFileUp.PostedFile.FileName));

                    primeraEvidenciaFileUp.SaveAs(Server.MapPath(averia.EvidenciasPath.ElementAt(0)));
                }

                else
                {
                    averia.EvidenciasPath.AddLast(string.Empty);
                }
                #endregion

                #region 2da
                if (segundaEvidenciaFileUp.HasFile)
                {
                    averia.EvidenciasPath.AddLast(string.Format(@"{0}/{1}", evidenciaFullDirPath, segundaEvidenciaFileUp.PostedFile.FileName));

                    segundaEvidenciaFileUp.SaveAs(Server.MapPath(averia.EvidenciasPath.ElementAt(1)));
                }

                else
                {
                    averia.EvidenciasPath.AddLast(string.Empty);
                }
                #endregion

                #region 3ra

                if (terceraEvidenciaFileUp.HasFile)
                {
                    averia.EvidenciasPath.AddLast(string.Format(@"{0}/{1}", evidenciaFullDirPath, terceraEvidenciaFileUp.PostedFile.FileName));

                    terceraEvidenciaFileUp.SaveAs(Server.MapPath(averia.EvidenciasPath.ElementAt(2)));
                }

                else
                {
                    averia.EvidenciasPath.AddLast(string.Empty);
                }
                #endregion

                #region 4ta
                if (cuartaEvidenciaFileUp.HasFile)
                {
                    averia.EvidenciasPath.AddLast(string.Format(@"{0}/{1}", evidenciaFullDirPath, cuartaEvidenciaFileUp.PostedFile.FileName));

                    cuartaEvidenciaFileUp.SaveAs(Server.MapPath(averia.EvidenciasPath.ElementAt(3)));
                }

                else
                {
                    averia.EvidenciasPath.AddLast(string.Empty);
                }
                #endregion
                #endregion

                //Check if file uploads have anything. If it does, update evidencia path. If it doesn't, keep old path
                newEvidencias.AddLast(!primeraEvidenciaFileUp.HasFile ? evidenciasExitentes.ElementAt(0) : averia.EvidenciasPath.ElementAt(0));

                newEvidencias.AddLast(!segundaEvidenciaFileUp.HasFile ? evidenciasExitentes.ElementAt(1) : averia.EvidenciasPath.ElementAt(1));

                newEvidencias.AddLast(!terceraEvidenciaFileUp.HasFile ? evidenciasExitentes.ElementAt(2) : averia.EvidenciasPath.ElementAt(2));

                newEvidencias.AddLast(!cuartaEvidenciaFileUp.HasFile ? evidenciasExitentes.ElementAt(3) : averia.EvidenciasPath.ElementAt(3));

                averia.EvidenciasPath = newEvidencias;

                #endregion

                #region Init averia uso oficial section

                averia.Inspector = inspectoresDDL.SelectedValue;

                averia.Informe = informeTxtBx.Text.ToUpper();

                averia.FechaUsoOficial = Convert.ToDateTime(fechaUsoOficialTxtBx.Text);

                if (user.Rol.ID != (int)Role.TipoRoles.Inspector)
                    averia.AutorizadoPor = string.Format("{0} {1} {2}", user.Nombre, user.ApellidoPaterno, user.ApellidoMaterno);

                else
                    averia.AutorizadoPor = autorizadoTxtBx.Text;

                averia.ID = Convert.ToInt32(Request.QueryString["Id"]);

                #region popular inpector evidencia

                if (inspectorEvidenciaFileUp.HasFile)
                {
                    averia.InspectorEvidenciasPath.AddLast(string.Format(@"{0}/{1}", evidenciaFullDirPath, inspectorEvidenciaFileUp.PostedFile.FileName));

                    inspectorEvidenciaFileUp.SaveAs(Server.MapPath(averia.InspectorEvidenciasPath.ElementAt(0)));
                }

                else
                {
                    averia.InspectorEvidenciasPath.AddLast(string.Empty);
                }

                if (inspectorEvidenciaFileUp2.HasFile)
                {
                    averia.InspectorEvidenciasPath.AddLast(string.Format(@"{0}/{1}", evidenciaFullDirPath, inspectorEvidenciaFileUp2.PostedFile.FileName));

                    inspectorEvidenciaFileUp2.SaveAs(Server.MapPath(averia.InspectorEvidenciasPath.ElementAt(1)));
                }

                else
                {
                    averia.InspectorEvidenciasPath.AddLast(string.Empty);
                }

                if (inspectorEvidenciaFileUp3.HasFile)
                {
                    averia.InspectorEvidenciasPath.AddLast(string.Format(@"{0}/{1}", evidenciaFullDirPath, inspectorEvidenciaFileUp3.PostedFile.FileName));

                    inspectorEvidenciaFileUp3.SaveAs(Server.MapPath(averia.InspectorEvidenciasPath.ElementAt(2)));
                }

                else
                {
                    averia.InspectorEvidenciasPath.AddLast(string.Empty);
                }

                if (inspectorEvidenciaFileUp4.HasFile)
                {
                    averia.InspectorEvidenciasPath.AddLast(string.Format(@"{0}/{1}", evidenciaFullDirPath, inspectorEvidenciaFileUp4.PostedFile.FileName));

                    inspectorEvidenciaFileUp4.SaveAs(Server.MapPath(averia.InspectorEvidenciasPath.ElementAt(3)));
                }

                else
                {
                    averia.InspectorEvidenciasPath.AddLast(string.Empty);
                }

                newInspectorEvidencias.AddLast(!inspectorEvidenciaFileUp.HasFile ? inspectorEvidenciasExistentes.ElementAt(0) : averia.InspectorEvidenciasPath.ElementAt(0));

                newInspectorEvidencias.AddLast(!inspectorEvidenciaFileUp2.HasFile ? inspectorEvidenciasExistentes.ElementAt(1) : averia.InspectorEvidenciasPath.ElementAt(1));

                newInspectorEvidencias.AddLast(!inspectorEvidenciaFileUp3.HasFile ? inspectorEvidenciasExistentes.ElementAt(2) : averia.InspectorEvidenciasPath.ElementAt(2));

                newInspectorEvidencias.AddLast(!inspectorEvidenciaFileUp4.HasFile ? inspectorEvidenciasExistentes.ElementAt(3) : averia.InspectorEvidenciasPath.ElementAt(3));

                averia.InspectorEvidenciasPath = newInspectorEvidencias;

                #endregion

                #endregion

                AveriasServicio.TryUpdating(averia);

                if (!string.IsNullOrEmpty(averia.Informe))
                {
                    #region Generate pdf

                    #region Init

                    Document doc = new Document(PageSize.LETTER, 0f, 0f, 0f, 0f);

                    String Fecha = DateTime.Now.ToString();

                    iTextSharp.text.Font NormalFont = FontFactory.GetFont("Arial", 12, Font.NORMAL, Color.BLACK);

                    using (System.IO.MemoryStream memoryStream = new System.IO.MemoryStream())
                    {
                        PdfWriter writer = PdfWriter.GetInstance(doc, memoryStream);

                        Phrase phrase = null;

                        PdfPCell cell = null;

                        PdfPCell b = new PdfPCell(new Phrase(" "));

                        PdfPTable table = null;

                        DateTime datevalue = (Convert.ToDateTime(Fecha.ToString()));

                        Fecha = datevalue.ToString("MM/dd/yyyy");

                        String[] mes = { "ENERO", "FEBRERO", "MARZO", "ABRIL", "MAYO", "JUNIO", "JULIO", "AGOSTO", "SEPTIEMBRE", "OCTUBRE", "NOVIEMBRE", "DICIEMBRE" };

                        String FechaLetras = datevalue.Day.ToString() + " DE " + mes[datevalue.Month - 1] + " DE " + datevalue.Year.ToString();

                        doc.Open();

                    #endregion

                        #region Header
                        Paragraph p = new Paragraph("DTOP-          09/15                                              \n\n", FontFactory.GetFont("Arial", 8, Font.NORMAL
                            , Color.BLACK));
                        p.Alignment = Element.ALIGN_RIGHT;
                        doc.Add(p);

                        //Header Table
                        table = new PdfPTable(3);

                        //Header Data
                        cell = ImageCell("~/images/EscudoPR.png", 40f, PdfPCell.ALIGN_LEFT);
                        cell.Border = 0;
                        table.AddCell(cell);
                        cell = new PdfPCell(new Phrase(" "));
                        cell.Border = 0;
                        table.AddCell(cell);
                        phrase = new Phrase();
                        phrase.Add(new Chunk("\n\nNÚMERO DE AVERÍA:\n", FontFactory.GetFont("Arial", 8, Font.NORMAL, Color.BLACK)));
                        phrase.Add(new Chunk( averia.NumeroControl.NumControlText, FontFactory.GetFont("Arial", 16, Font.BOLD, Color.RED)));

                        cell = PhraseCell(phrase, PdfPCell.ALIGN_CENTER);
                        cell.BorderColorLeft = Color.BLACK;
                        cell.BorderColorRight = Color.BLACK;
                        cell.BorderColorTop = Color.BLACK;
                        cell.BorderColorBottom = Color.BLACK;
                        cell.BorderWidthLeft = 1f;
                        cell.BorderWidthRight = 1f;
                        cell.BorderWidthTop = 1f;
                        cell.BorderWidthBottom = 1f;
                        cell.Border = Rectangle.BOX;
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase(" "));
                        cell.Colspan = 3;
                        SetBorder(cell, false, false, false, false);
                        table.AddCell(cell);

                        doc.Add(table);

                        p = new Paragraph("DIRECTORÍA DE EXCAVACIONES, DEMOLICIONES Y TUBERÍAS", FontFactory.GetFont("Arial", 14, Font.NORMAL, Color.BLACK));
                        p.Alignment = Element.ALIGN_CENTER;
                        doc.Add(p);

                        p = new Paragraph("CENTRO DE COORDINACIÓN DE EXCAVACIONES Y DEMOLICIONES", FontFactory.GetFont("Arial", 14, Font.NORMAL, Color.BLACK));
                        p.Alignment = Element.ALIGN_CENTER;
                        doc.Add(p);

                        p = new Paragraph("REPORTE DE AVERÍA\n\n", FontFactory.GetFont("Arial", 14, Font.BOLD, Color.BLACK));
                        p.Alignment = Element.ALIGN_CENTER;
                        doc.Add(p);

                        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        table = new PdfPTable(7);
                        table.SetWidths(new float[] { 1.0f, 0.5f, 3.5f, 1.5f, 0.2f, 0.4f, 0.1f });
                        ////////////////////

                        cell = new PdfPCell(new Phrase("FECHA DE NOTIFICACIÓN:", FontFactory.GetFont("Arial", 9, Font.BOLD, Color.BLACK)));
                        cell.Colspan = 2;
                        SetBorder(cell, true, false, false, false);
                        table.AddCell(cell);

                        //////////////////////////////////////////

                        //
                        cell = new PdfPCell(new Phrase(averia.FechaNotificacion.ToShortDateString(), FontFactory.GetFont("Arial", 12, Font.BOLD, Color.BLACK)));
                        //cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                        cell.Colspan = 10;
                        SetBorder(cell, false, false, false, false);
                        table.AddCell(cell);

                        doc.Add(table);
                        #endregion

                        #region Info general
                        table = new PdfPTable(10);

                        #region label

                        cell = new PdfPCell(new Phrase("HORA DEL INCIDENTE:", FontFactory.GetFont("Arial", 9, Font.BOLD, Color.BLACK)));

                        cell.Colspan = 4;

                        //SetBorder(cell, true, false, false, false);

                        table.AddCell(cell);

                        #endregion

                        #region textbx

                        cell = new PdfPCell(new Phrase(averia.Hora, FontFactory.GetFont("Arial", 9, Font.NORMAL, Color.BLACK)));

                        cell.Colspan = 2;

                        //SetBorder(cell, false, false, true, false);

                        table.AddCell(cell);

                        #endregion

                        cell = new PdfPCell(new Phrase("FECHA DE AVERÍA:", FontFactory.GetFont("Arial", 9, Font.BOLD, Color.BLACK)));
                        cell.Colspan = 2;
                        SetBorder(cell, true, false, false, false);
                        table.AddCell(cell);
                        cell = new PdfPCell(new Phrase(averia.FechaAveria.ToShortDateString(), FontFactory.GetFont("Arial", 9, Font.NORMAL, Color.BLACK)));
                        cell.Colspan = 2;
                        SetBorder(cell, false, false, false, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase("ENTIDAD REPORTANTE:", FontFactory.GetFont("Arial", 9, Font.BOLD, Color.BLACK)));
                        cell.Colspan = 10;
                        SetBorder(cell, false, false, false, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase(averia.Reportante, FontFactory.GetFont("Arial", 9, Font.NORMAL, Color.BLACK)));
                        //cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                        cell.Colspan = 22;
                        SetBorder(cell, false, false, true, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase("ENTIDAD CAUSANTE:", FontFactory.GetFont("Arial", 9, Font.BOLD, Color.BLACK)));
                        cell.Colspan = 10;
                        SetBorder(cell, false, false, false, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase(averia.Causante, FontFactory.GetFont("Arial", 9, Font.NORMAL, Color.BLACK)));
                        //cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                        cell.Colspan = 22;
                        SetBorder(cell, false, false, true, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase("USUARIOS AFECTADOS:", FontFactory.GetFont("Arial", 9, Font.BOLD, Color.BLACK)));
                        cell.Colspan = 10;
                        SetBorder(cell, false, false, false, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase(averia.UsuariosAfectados, FontFactory.GetFont("Arial", 9, Font.NORMAL, Color.BLACK)));
                        //cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                        cell.Colspan = 22;
                        SetBorder(cell, false, false, true, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase("SERVICIOS AFECTADOS:", FontFactory.GetFont("Arial", 9, Font.BOLD, Color.BLACK)));
                        cell.Colspan = 10;
                        SetBorder(cell, false, false, false, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase(averia.ServiciosAfectados, FontFactory.GetFont("Arial", 9, Font.NORMAL, Color.BLACK)));
                        //cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                        cell.Colspan = 22;
                        SetBorder(cell, false, false, true, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase("DIRECCIÓN:", FontFactory.GetFont("Arial", 9, Font.BOLD, Color.BLACK)));
                        cell.Colspan = 10;
                        SetBorder(cell, false, false, false, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase(averia.Direccion, FontFactory.GetFont("Arial", 9, Font.NORMAL, Color.BLACK)));
                        //cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                        cell.Colspan = 22;
                        SetBorder(cell, false, false, true, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase("DESCRIPCIÓN:", FontFactory.GetFont("Arial", 9, Font.BOLD, Color.BLACK)));
                        cell.Colspan = 10;
                        SetBorder(cell, false, false, false, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase(averia.Descripcion, FontFactory.GetFont("Arial", 9, Font.NORMAL, Color.BLACK)));
                        //cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                        cell.Colspan = 22;
                        SetBorder(cell, false, false, true, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase("CAUSA:", FontFactory.GetFont("Arial", 9, Font.BOLD, Color.BLACK)));
                        cell.Colspan = 10;
                        SetBorder(cell, false, false, false, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase(averia.Causa, FontFactory.GetFont("Arial", 9, Font.NORMAL, Color.BLACK)));
                        //cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                        cell.Colspan = 22;
                        SetBorder(cell, false, false, true, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase("ACCIÓN TOMADA:", FontFactory.GetFont("Arial", 9, Font.BOLD, Color.BLACK)));
                        cell.Colspan = 10;
                        SetBorder(cell, false, false, false, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase(averia.AccionTomada, FontFactory.GetFont("Arial", 9, Font.NORMAL, Color.BLACK)));
                        //cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                        cell.Colspan = 22;
                        SetBorder(cell, false, false, true, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase("EMPLEADO QUE RECIBE LLAMADA O CORREO:", FontFactory.GetFont("Arial", 9, Font.BOLD, Color.BLACK)));
                        cell.Colspan = 10;
                        SetBorder(cell, false, false, false, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase(averia.EmpleadoContactar, FontFactory.GetFont("Arial", 9, Font.NORMAL, Color.BLACK)));
                        //cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                        cell.Colspan = 10;
                        SetBorder(cell, false, false, true, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase("MUNICIPIO:", FontFactory.GetFont("Arial", 9, Font.BOLD, Color.BLACK)));
                        cell.Colspan = 10;
                        SetBorder(cell, false, false, false, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase(averia.Municipio, FontFactory.GetFont("Arial", 9, Font.NORMAL, Color.BLACK)));
                        //cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                        cell.Colspan = 10;
                        SetBorder(cell, false, false, true, false);
                        table.AddCell(cell);

                        doc.Add(table);

                        #endregion

                        #region Info oficial
                        table = new PdfPTable(10);

                        cell = new PdfPCell(new Phrase("USO OFICIAL:", FontFactory.GetFont("Arial", 13, Font.BOLD, Color.BLACK)));
                        cell.Colspan = 20;
                        SetBorder(cell, true, true, true, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase(""));
                        cell.Colspan = 20;
                        SetBorder(cell, true, false, true, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase("INSPECTOR ASIGNADO:", FontFactory.GetFont("Arial", 9, Font.BOLD, Color.BLACK)));
                        cell.Colspan = 10;
                        SetBorder(cell, true, false, false, false);
                        table.AddCell(cell);
                        cell = new PdfPCell(new Phrase(averia.Inspector, FontFactory.GetFont("Arial", 9, Font.NORMAL, Color.BLACK)));
                        cell.Colspan = 4;
                        SetBorder(cell, false, false, true, false);
                        table.AddCell(cell);

                        cell = new PdfPCell(new Phrase("FECHA:", FontFactory.GetFont("Arial", 9, Font.BOLD, Color.BLACK)));
                        cell.Colspan = 4;
                        SetBorder(cell, true, false, false, false);
                        table.AddCell(cell);
                        cell = new PdfPCell(new Phrase(averia.FechaUsoOficial.ToShortDateString(), FontFactory.GetFont("Arial", 9, Font.NORMAL, Color.BLACK)));
                        cell.Colspan = 2;
                        SetBorder(cell, false, false, false, false);
                        table.AddCell(cell);
                        cell = new PdfPCell(new Phrase("INFORME DE INSPECTOR:", FontFactory.GetFont("Arial", 9, Font.BOLD, Color.BLACK)));
                        cell.Colspan = 10;
                        SetBorder(cell, false, false, false, false);
                        table.AddCell(cell);
                        cell = new PdfPCell(new Phrase(averia.Informe, FontFactory.GetFont("Arial", 9, Font.NORMAL, Color.BLACK)));
                        //cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                        cell.Colspan = 22;
                        SetBorder(cell, false, false, true, false);
                        table.AddCell(cell);

                        doc.Add(table);
                        #endregion

                        doc.Close();
                        byte[] bytes = memoryStream.ToArray();
                        memoryStream.Close();

                        File.WriteAllBytes(Server.MapPath(string.Format("{0}/{1}", Averia.GetAveriaDocInitialPath(),
                            string.Format(@"Averia_{0}.pdf", averia.NumeroControl.NumControlText))), bytes);
                    }

                    #endregion
                }

                #endregion
            }

            Response.Redirect("~/Logic/AveriaCreateEdit.aspx", true);
        }