Example #1
0
        internal static bool Validate(IRequest request, IResponse response)
        {
            var done = false;

            if (request == null)
            {
                response.ConfigureNullRequest(1410);
            }
            else if (string.IsNullOrWhiteSpace(request.UserID))
            {
                response.Configure(Codes.BadRequest, "Favor de especificar el Usuario que realiza la solicitud.", 1412);
            }
            else if (!Validators.IsGuid(request.Token))
            {
                response.Configure(Codes.BadRequest, "Favor de especificar el Token en el formato solicitado.", 1414);
            }
            else if (string.IsNullOrWhiteSpace(request.Signature) || request.Signature.Length != 40)
            {
                response.Configure(Codes.BadRequest, "Favor de especificar el la Firma Electrónica en el formato especificado.", 1416);
            }
            else
            {
                done = true;
            }

            return(done);
        }
Example #2
0
        /// <summary>
        /// Verifica la integridad de una solicitud del tipo RequestObject
        /// </summary>
        /// <param name="request"></param>
        /// <param name="response"></param>
        /// <returns></returns>
        public static bool IsValid <T>(RequestObject <T> request, IResponse response)
        {
            var done = false;

            if (RequestsExtensions.Validate(request, response))
            {
                if (request.Content == null)
                {
                    response.Configure(Codes.BadRequest, "Favor de especificar el contenido de la solicitud.", 1418);
                }
                else
                {
                    done = true;
                }
            }

            return(done);
        }
        public static bool TranValidate(string data, IResponse response, out object[][] result)
        {
            var done = false;

            byte[] fileData = null;
            result = null;

            try
            {
                var content = data.Split(new string[] { "base64," }, StringSplitOptions.None)[1];
                fileData = Convert.FromBase64String(content);
            }
            catch (Exception ex)
            {
                response.ConfigureAndLog("Ha ocurrido un error al realizar la lectura de un documento.", 1100, ex);
            }

            if (fileData != null)
            {
                using (var ms = new MemoryStream(fileData))
                {
                    using (var doc = SpreadsheetDocument.Open(ms, false))
                    {
                        var sheetsList        = doc.WorkbookPart.Workbook.Sheets;
                        var sharedStringTable = doc.WorkbookPart.GetPartsOfType <SharedStringTablePart>().First().SharedStringTable;

                        if (sheetsList.Count() == 1)
                        {
                            var rowList   = new List <object[]>();
                            var sheetData = doc.WorkbookPart.WorksheetParts.First().Worksheet.Elements <SheetData>().First();

                            foreach (var row in sheetData.Elements <Row>())
                            {
                                var valueList = new List <object>();
                                foreach (var cell in row.Elements <Cell>())
                                {
                                    object value = null;

                                    if (cell.DataType != null)
                                    {
                                        if (cell.DataType == CellValues.SharedString)
                                        {
                                            int ssid = int.Parse(cell.CellValue.Text);
                                            value = sharedStringTable.ChildElements[ssid].InnerText;
                                        }
                                        else
                                        {
                                            value = cell.CellValue?.Text;
                                        }
                                    }
                                    else
                                    {
                                        value = cell.CellValue?.Text;
                                    }

                                    valueList.Add(value);
                                }
                                System.Diagnostics.Debug.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(valueList.ToArray()));
                                rowList.Add(valueList.ToArray());
                            }

                            result = rowList.ToArray();
                            done   = true;
                        }
                        else
                        {
                            response.Configure(Codes.BadRequest, "El documento contiene cero o más de una pestaña.", 1110);
                        }
                    }
                }
            }

            return(done);
        }
Example #4
0
 public static void ConfigureUnauthorized(this IResponse sender, int errorNumber)
 {
     sender.Configure(Codes.Unauthorized, "No se han especificado las credenciales de la solicitud o son inválidos.", errorNumber);
 }
Example #5
0
 public static void ConfigureAndLog(this IResponse sender, string message, int?errorNumber, Exception ex)
 {
     sender.Configure(Codes.InternalServerError, message, errorNumber);
     Diagnostics.OnError(new Exception(sender.Message, ex));
 }
Example #6
0
 public static void ConfigureTranCommitFailure(this IResponse sender)
 {
     sender.Configure(Codes.InternalServerError, "Ha ocurrido un error al confirmar la operación con la capa de datos.", 1503);
 }
Example #7
0
 public static void ConfigureConnectionFailure(this IResponse sender)
 {
     sender.Configure(Codes.ServiceUnavailable, "Ha ocurrido un error al conectar con la capa de datos.", 1501);
 }
Example #8
0
 public static void ConfigureNullAuthorID(this IResponse sender, int errorNumber)
 {
     sender.Configure(Codes.BadRequest, "No se ha especificado el ID del usuario que realiza la operación o es inválido.", errorNumber);
 }
Example #9
0
 public static void ConfigureNullContent(this IResponse sender, int errorNumber)
 {
     sender.Configure(Codes.BadRequest, "No se han especificado el contenido de la solicitud o es inválida.", errorNumber);
 }
Example #10
0
 public static void ConfigureNullRequest(this IResponse sender, int errorNumber)
 {
     sender.Configure(Codes.BadRequest, "No se han especificado los parametros requeridos para realizar la operación o son inválidos.", errorNumber);
 }