public async Task <HttpResponseMessage> AltaExcel()
        {
            var response = new HttpResponseMessage();

            try
            {
                var req = await Request.Content.ReadAsMultipartAsync();

                dynamic o       = HttpContentToVariables(req).Result;
                int     segment = 0;
                //validate Branches
                if (o.BranchesId == null || !Int32.TryParse(o.BranchesId, out segment))
                {
                    response.StatusCode = HttpStatusCode.BadRequest;
                    response.Content    = new StringContent("Debe enviar BranchesId");
                    return(response);
                }

                var segId = _context.Branch.FirstOrDefault(b => b.Id == segment);
                if (segId == null)
                {
                    response.StatusCode = HttpStatusCode.BadRequest;
                    response.Content    = new StringContent("Debe enviar BranchesId valido");
                    return(response);
                }
                //validate startDate of alta
                DateTime startDate = new DateTime();
                if (o.startDate == null || !DateTime.TryParse(o.startDate, out startDate))
                {
                    response.StatusCode = HttpStatusCode.BadRequest;
                    response.Content    = new StringContent("Debe enviar startDate");
                    return(response);
                }

                //validate endDate of alta
                DateTime endDate = new DateTime();
                if (o.endDate == null || !DateTime.TryParse(o.endDate, out endDate))
                {
                    response.StatusCode = HttpStatusCode.BadRequest;
                    response.Content    = new StringContent("Debe enviar endDate");
                    return(response);
                }

                if (endDate < startDate)
                {
                    response.StatusCode = HttpStatusCode.BadRequest;
                    response.Content    = new StringContent("La fecha de fin no puede ser menor a la fecha de inicio");
                    return(response);
                }

                var file     = o.excelStream;
                var fileName = o.fileName;

                ContractExcel contractExcel = new ContractExcel(o.excelStream, _context, o.fileName, segId.Id, startDate: startDate, endDate: endDate, headerin: 3, sheets: 1);
                if (contractExcel.ValidateFile())
                {
                    string query = "update " + CustomSchema.Schema +
                                   ".\"TempAlta\" set \"State\"='CANCELED' where \"State\"='UPLOADED' and \"BranchesId\" = " +
                                   segId.Id;
                    _context.Database.ExecuteSqlCommand(query);
                    contractExcel.toDataBase();
                    response.StatusCode = HttpStatusCode.OK;
                    response.Content    = new StringContent("Se subio el archivo correctamente.");
                    return(response);
                }
                return(contractExcel.toResponse());
            }
            catch (System.ArgumentException e)
            {
                response.StatusCode = HttpStatusCode.BadRequest;
                response.Content    = new StringContent("Por favor enviar un archivo en formato excel (.xls, .xslx)" + e);
                return(response);
            }
        }
        public HttpResponseMessage getAltaExcelTemplate()
        {
            ContractExcel contractExcel = new ContractExcel(fileName: "AltaExcel_TH.xlsx", headerin: 3);

            return(contractExcel.getTemplate());
        }