public async Task <IActionResult> FilesSave(string id)
        {
            var    files           = Request.Form.Files;
            long   size            = files.Sum(f => f.Length);
            string webRootPath     = _HostingEnvironment.WebRootPath;
            string contentRootPath = _HostingEnvironment.ContentRootPath;

            foreach (var formFile in files)
            {
                if (formFile.Length > 0)
                {
                    string fileExt     = _GetFileSuffix(formFile.FileName); // 文件扩展名,不含“.”
                    long   fileSize    = formFile.Length;                   // 获得文件大小,以字节为单位
                    string newFileName = id + "_" + formFile.FileName;      // 生成新的文件名
                    var    filePath    = webRootPath + "/uploadFiles/" + newFileName;
                    using (var stream = new FileStream(filePath, FileMode.Create))
                    {
                        await formFile.CopyToAsync(stream);
                    }

                    var fileBo = new BusinessFile();
                    fileBo.RelevanceObjectID = Guid.Parse(id);
                    fileBo.Name       = formFile.FileName;
                    fileBo.UploadPath = "/uploadFiles/" + newFileName;
                    await _businessFileService.AddOrEditAndSaveAsyn(fileBo);
                }
            }

            return(Ok(new { count = files.Count, size }));
        }
Exemple #2
0
 protected void btnGuardar_OnClick(object sender, EventArgs e)
 {
     try
     {
         ValidaCaptura();
         if (EsAlta)
         {
             //_servicioCatalogo.CrearCatalogoExcel(txtDescripcionCatalogo.Text, true, hfFileName.Value, rbtnHojas.SelectedValue);
         }
         else
         {
             //_servicioCatalogo.ActualizarCatalogoExcel(IdCatalogo, true, hfFileName.Value, rbtnHojas.SelectedValue);
         }
         BusinessFile.LimpiarRepositorioTemporal(new List <string> {
             hfFileName.Value
         });
         LimpiarPantalla();
         if (OnAceptarModal != null)
         {
             OnAceptarModal();
         }
     }
     catch (Exception ex)
     {
         if (_lstError == null)
         {
             _lstError = new List <string>();
         }
         _lstError.Add(ex.Message);
         Alerta = _lstError;
     }
 }
Exemple #3
0
 protected void afuArchivo_OnUploadedComplete(object sender, AsyncFileUploadEventArgs e)
 {
     try
     {
         List <HelperFiles> files = Session["selectedFiles"] == null ? new List <HelperFiles>() : (List <HelperFiles>)Session["selectedFiles"];
         if (!files.Any(a => a.NombreArchivo.Contains(afuArchivo.FileName)))
         {
             Int64 sumaArchivos = Int64.Parse(Session["FileSize"].ToString());
             sumaArchivos += int.Parse(e.FileSize);
             if ((sumaArchivos / 1024) > (1024 * 1024))
             {
                 throw new Exception(string.Format("El tamaño maximo de carga es de {0}MB", "10"));
             }
             afuArchivo.PostedFile.SaveAs(BusinessVariables.Directorios.RepositorioTemporalInformacionConsulta + afuArchivo.FileName);
             HelperFiles hFiles = new HelperFiles {
                 NombreArchivo = e.FileName.Split('\\').Last(), Tamaño = BusinessFile.ConvertirTamaño(e.FileSize), Extension = Path.GetExtension(afuArchivo.FileName)
             };
             files.Add(hFiles);
             Session["FileSize"]      = int.Parse(Session["FileSize"].ToString()) + int.Parse(e.FileSize);
             Session["selectedFiles"] = files;
         }
         LlenaArchivosCargados();
     }
     catch (Exception ex)
     {
         if (_lstError == null)
         {
             _lstError = new List <string>();
         }
         _lstError.Add(ex.Message);
         AlertaGeneral = _lstError;
     }
 }
 public BusinessFileVM(BusinessFile bo)
 {
     this.Id              = bo.ID;
     this.ObjectId        = bo.RelevanceObjectID.ToString();
     this.FileDisplayName = bo.Name;
     this.FilePath        = bo.UploadPath;
 }
Exemple #5
0
        public void CrearCancion(int idAlbum, string nombreArchivo)
        {
            ModelDataContext db = new ModelDataContext();

            try
            {
                Cancion  newSong  = new Cancion();
                FileInfo fileInfo = new FileInfo(BusinessVariables.Directorios.RepositorioTemporal + nombreArchivo);
                BusinessFile.MoverTemporales(BusinessVariables.Directorios.RepositorioTemporal, BusinessVariables.Directorios.Repositorio, nombreArchivo);
                switch (fileInfo.Extension.ToLower())
                {
                case ".mp3":
                    newSong = new Cancion
                    {
                        IdAlbum     = idAlbum,
                        Descripcion = nombreArchivo,
                        Extension   = fileInfo.Extension,
                        ContentType = "audio/mpeg3",
                        FilePath    = BusinessVariables.Directorios.Repositorio + nombreArchivo,
                        Data        = null
                    };
                    break;

                case ".m4a":
                    newSong = new Cancion
                    {
                        IdAlbum     = idAlbum,
                        Descripcion = nombreArchivo,
                        Extension   = fileInfo.Extension,
                        ContentType = "audio/mpeg4",
                        FilePath    = BusinessVariables.Directorios.Repositorio + nombreArchivo,
                        Data        = null
                    };
                    break;

                case ".m4b":
                    newSong = new Cancion
                    {
                        IdAlbum     = idAlbum,
                        Descripcion = nombreArchivo,
                        Extension   = fileInfo.Extension,
                        ContentType = "audio/mpeg4",
                        FilePath    = BusinessVariables.Directorios.Repositorio + nombreArchivo,
                        Data        = null
                    };
                    break;
                }
                db.Cancion.AddObject(newSong);
                db.SaveChanges();
                BusinessFile.LimpiarTemporales(nombreArchivo);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
        public async Task <IActionResult> UploadAttachFiles(List <IFormFile> files)
        //public async Task<IActionResult> UploadAttachFiles([FromForm]List<IFormFile> files)
        {
            List <BusinessFile> results = new List <BusinessFile>();

            try
            {
                if (files == null || files.Count == 0)
                {
                    Response.StatusCode = 500;

                    return(Content("업로드할 파일이 없습니다."));
                }

                // 10 * 1024 * 1024 => 10485760(10MB)
                foreach (var file in files)
                {
                    if (file.Length >= 10485760)
                    {
                        Response.StatusCode = 500;

                        return(Content("업로드할 파일은 10MB를 넘길 수 없습니다."));
                    }
                }

                string uploadFilePath = $"{hostingEnvironment.WebRootPath}\\uploads\\{DateTime.Now.Year.ToString()}\\{DateTime.Now.Month.ToString().PadLeft(2, '0')}\\{DateTime.Now.Day.ToString().PadLeft(2, '0')}";
                //string uploadFilePath = $"/home/www/Daewoong.BI/WebApiJwt-master/wwwroot/uploads/{DateTime.Now.Year.ToString()}/{DateTime.Now.Month.ToString().PadLeft(2, '0')}/{DateTime.Now.Day.ToString().PadLeft(2, '0')}";

                if (!Directory.Exists(uploadFilePath))
                {
                    Directory.CreateDirectory(uploadFilePath);
                }

                foreach (var file in files)
                {
                    if (file.Length > 0)
                    {
                        var filePath = Path.Combine(uploadFilePath, Path.GetFileName(file.FileName));

                        using (var stream = new FileStream(filePath, FileMode.Create))
                        {
                            await file.CopyToAsync(stream);
                        }

                        BusinessFile result = new BusinessFile();
                        result.FileName = Path.GetFileName(file.FileName);
                        result.FileSize = file.Length;
                        result.FileURL  = filePath.Replace(hostingEnvironment.WebRootPath, "").Replace("\\", "/");
                        results.Add(result);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.ToString());
            }

            return(Ok(results));
        }
        public override void InitData(IDataNode dataSource, Dictionary <string, string> paras)
        {
            if (dataSource == null)
            {
                return;
            }

            bool   bReadOnly = true;
            string sReadonly = "";

            if (paras.TryGetValue("readonly", out sReadonly))
            {
                bReadOnly = System.Convert.ToBoolean(sReadonly);
            }

            advXmlEditor.ReadOnly = bReadOnly;

            IEntity ent = dataSource.getEntity();

            if (ent is BusinessFile)
            {
                BusinessFile bf   = ent as BusinessFile;
                string       file = bf.GetDownloadPath();
                if (!string.IsNullOrEmpty(file))
                {
                    advXmlEditor.OpenDocument(file);
                }
            }
            else if (ent is IXmlData)
            {
                IXmlData dm = ent as IXmlData;

                if (dm.XMLFile == null)
                {
                    MessageBox.Show("选中的业务数据,没有获取到文件,不能编辑内容!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                dm.DownLoadFiles();
                dm.DownLoadXSDFiles();
                string file = dm.XMLFile.GetDownloadPath();
                if (!string.IsNullOrEmpty(file))
                {
                    if (!string.IsNullOrEmpty(dm.XSDFilePath))
                    {
                        advXmlEditor.OpenDocumentWithSchema(file, dm.XSDFilePath);
                    }
                    else
                    {
                        advXmlEditor.OpenDocument(file);
                    }
                    advXmlEditor.LanguageReader = dm.LanguageReader;
                }
            }
        }
Exemple #8
0
 private void RenombraArchivos(List <string> lstArchivos, int idInformacion)
 {
     try
     {
         BusinessFile.RenombrarArchivosConsulta(lstArchivos, idInformacion);
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
        // 下面的方法暂时不需要处理
        private Task <string> _ProcessUploadFile(
            CustomMultipartFormDataStreamProvider provider,
            List <string> files,
            string fileType,
            BusinessImage imgaeRecord,
            BusinessFile fileRecord,
            string defaultUploadFilesUrl,
            Guid mainID,
            string relID,
            long fileSize
            )
        {
            Request.Content.ReadAsMultipartAsync(provider);
            foreach (MultipartFileData file in provider.FileData)
            {
                files.Add(Path.GetFileName(file.LocalFileName));

                #region 持久化关系处理

                var localFileName  = Path.GetFileName(file.LocalFileName).ToLower();
                var saveFileSuffix = Path.GetExtension(file.LocalFileName).ToLower();
                var saveFileName   = localFileName.Substring((mainID + "_").Length, localFileName.Length - (mainID + "_").Length - saveFileSuffix.Length);
                switch (fileType)
                {
                case "imageFile":
                    imgaeRecord.Name              = saveFileName;
                    imgaeRecord.UploadPath        = defaultUploadFilesUrl;
                    imgaeRecord.Description       = "图形文件";
                    imgaeRecord.OriginalFileName  = localFileName;
                    imgaeRecord.UploadFileSuffix  = saveFileSuffix;
                    imgaeRecord.UploadedTime      = DateTime.Now;
                    imgaeRecord.FileSize          = (long)fileSize;
                    imgaeRecord.RelevanceObjectID = Guid.Parse(relID);
                    _ImageService.SaveSingleWithUniquenessRelevanceID(imgaeRecord);
                    break;

                default:
                    fileRecord.Name                   = saveFileName;
                    fileRecord.UploadPath             = defaultUploadFilesUrl;
                    fileRecord.Description            = "普通文件";
                    fileRecord.OriginalFileName       = localFileName;
                    fileRecord.UploadFileSuffix       = saveFileSuffix;
                    fileRecord.AttachmentTimeUploaded = DateTime.Now;
                    fileRecord.FileSize               = (long)fileSize;
                    fileRecord.RelevanceObjectID      = Guid.Parse(relID);
                    _FileService.SaveSingleWithUniquenessRelevanceID(fileRecord);
                    break;
                }
                #endregion
            }
            return(null);
        }
Exemple #10
0
 private void MostrarImagen(string nombreDocumento, string directorio)
 {
     try
     {
         const string tmpPath = "~/Users/General/";
         BusinessFile.CopiarArchivoDescarga(directorio, nombreDocumento, Server.MapPath(tmpPath));
         imgDinamic.ImageUrl = tmpPath + nombreDocumento;
         imgDinamic.Visible  = true;
     }
     catch
     {
     }
 }
Exemple #11
0
        public async Task <IActionResult> FilesForAjaxUpload()
        {
            long size       = 0;
            long fileSize   = 0;
            var  boIsOk     = false;
            var  files      = Request.Form.Files;
            var  currUserId = _userManager.FindByNameAsync(User.Identity.Name).Result.Id;

            if (files.Count <= 0)
            {
                return(Json(new { isOK = false, fileCount = files.Count, size = size, message = "没有选择任何文件,请选择文件后,再提交上传。" }));
            }
            foreach (var file in files)
            {
                var currFileName = file.FileName;
                var timeForFile  = (DateTime.Now.ToString("yyyyMMddHHmmss") + "_").Trim();
                var fileName     = ContentDispositionHeaderValue
                                   .Parse(file.ContentDisposition)
                                   .FileName
                                   .Trim('"')
                                   .Substring(file.FileName.LastIndexOf("\\") + 1);
                var newFileName = timeForFile + fileName;
                var boPath      = "../../UploadFiles/" + newFileName;
                fileName = _hostingEnv.WebRootPath + $@"\UploadFiles\{newFileName}";
                fileSize = file.Length;
                size    += file.Length;
                using (FileStream fs = System.IO.File.Create(fileName))
                {
                    file.CopyTo(fs);
                    fs.Flush();
                }
                var businessFile = new BusinessFile
                {
                    Name             = currFileName,
                    OriginalFileName = currFileName,
                    Description      = "这是文件上传的demo示例文件",
                    UploadPath       = boPath,
                    FileSize         = fileSize,
                    UploaderId       = Guid.Parse(currUserId)
                };
                boIsOk = await _businessFile.AddOrEditAndSaveAsyn(businessFile);
            }
            if (boIsOk)
            {
                return(Json(new { isOK = true, fileCount = files.Count, size = size, message = "上传成功!" }));
            }
            else
            {
                return(Json(new { isOK = false, fileCount = files.Count, size = size, message = "上传失败!" }));
            }
        }
Exemple #12
0
        public void CrearCuenta(string nombre, string apellido, string correo, string pwd)
        {
            ModelDataContext db = new ModelDataContext();

            try
            {
                if (!ValidaCorreo(correo))
                {
                    throw new Exception("Correo ya se se encuentra en uso");
                }
                if (db.Usuario.Any(a => a.Correo == correo.Trim().ToLower()))
                {
                    throw new Exception("Ya se registro este correo");
                }
                Usuario usr = new Usuario();
                usr.Nombre          = nombre.ToUpper();
                usr.Apellido        = apellido.ToUpper();
                usr.Correo          = correo.ToLower().Trim();
                usr.Pwd             = Utils.SecurityUtils.CreateShaHash(pwd);
                usr.PwdDes          = pwd;
                usr.Sexo            = true;
                usr.Activo          = false;
                usr.FechaNacimiento = DateTime.Now;
                usr.FechaAlta       = DateTime.Now;
                usr.Confirmado      = false;
                usr.Habilitado      = true;
                Guid g = Guid.NewGuid();
                usr.UsuarioLinkPassword = new List <UsuarioLinkPassword>
                {
                    new UsuarioLinkPassword
                    {
                        Activo     = true,
                        Link       = g,
                        Fecha      = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture),
                        IdTipoLink = (int)BusinessVariables.EnumeradoresStreaming.EnumTipoLink.Confirmacion
                    }
                };
                db.Usuario.AddObject(usr);
                db.SaveChanges();
                BusinessFile.CreaRepositorio(usr.Correo);
                EnviaCorreo(usr.Nombre, usr.Correo, g.ToString());
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
        public JsonResult GetFiles()
        {
            List <FileDetails>  fileDetails   = _context.FileDetails.Where(wh => wh.CreatedBy == CurrentUser.UserId).ToList();
            List <BusinessFile> busineesFiles = new List <BusinessFile>();

            fileDetails.ForEach(f =>
            {
                var businessFile         = new BusinessFile();
                businessFile.FileId      = f.FileId;
                businessFile.FileName    = f.FileName;
                businessFile.FileType    = f.FileType;
                businessFile.CreatedTime = f.CreatedTime;
            });
            return(Json(fileDetails));
        }
Exemple #14
0
 public BusinessFileVM(BusinessFile bo)
 {
     Id                     = bo.Id;
     Name                   = bo.Name;
     Description            = bo.Description;
     SortCode               = bo.SortCode;
     AttachmentTimeUploaded = bo.AttachmentTimeUploaded;
     OriginalFileName       = bo.OriginalFileName;
     UploadPath             = bo.UploadPath;
     IsInDB                 = bo.IsInDB;
     UploadFileSuffix       = bo.UploadFileSuffix;
     BinaryContent          = bo.BinaryContent;
     FileSize               = bo.FileSize;
     IconString             = bo.IconString;
     RelevanceObjectId      = bo.RelevanceObjectId;
     UploaderId             = bo.UploaderId;
 }
Exemple #15
0
        public InformacionConsulta GuardarInformacionConsulta(InformacionConsulta informacion, List <string> documentosDescarga)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.ProxyCreationEnabled = _proxy;
                if (db.InformacionConsulta.Any(a => a.Descripcion == informacion.Descripcion))
                {
                    throw new Exception("Este Artículo ya existe.");
                }
                informacion.Descripcion = informacion.Descripcion.Trim();
                informacion.Habilitado  = true;
                informacion.FechaAlta   = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture);
                if (informacion.Id == 0)
                {
                    db.InformacionConsulta.AddObject(informacion);
                }
                db.SaveChanges();
                informacion = db.InformacionConsulta.Single(s => s.Id == informacion.Id);
                foreach (string s in documentosDescarga)
                {
                    informacion.InformacionConsultaDocumentos.Add(new InformacionConsultaDocumentos
                    {
                        IdTipoDocumento = ObtenerTipoDocumento(s),
                        Archivo         = informacion.Id + s,
                        FechaAlta       = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture),
                        IdUsuarioAlta   = informacion.IdUsuarioAlta,
                    });
                }
                db.SaveChanges();

                BusinessFile.MoverTemporales(BusinessVariables.Directorios.RepositorioTemporalInformacionConsulta, BusinessVariables.Directorios.RepositorioInformacionConsulta, documentosDescarga);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
            return(informacion);
        }
Exemple #16
0
 protected void Page_Load(object sender, EventArgs e)
 {
     try
     {
         if (Session["PreviewAltaDataConsulta"] != null && Request.QueryString["evaluacion"] != null)
         {
             InformacionConsulta info        = (InformacionConsulta)Session["PreviewAltaDataConsulta"];
             List <HelperFiles>  lstArchivos = new List <HelperFiles>();
             foreach (InformacionConsultaDocumentos docto in info.InformacionConsultaDocumentos)
             {
                 if (!File.Exists(BusinessVariables.Directorios.RepositorioInformacionConsulta + docto.Archivo))
                 {
                     Alerta = new List <string> {
                         string.Format("El archivo {0} no esta disponible.", docto.Archivo)
                     };
                     continue;
                 }
                 HelperFiles hf = new HelperFiles
                 {
                     NombreArchivo = docto.Archivo,
                     Tamaño        = BusinessFile.ConvertirTamaño(new FileInfo(BusinessVariables.Directorios.RepositorioInformacionConsulta + docto.Archivo).Length.ToString())
                 };
                 BusinessFile.CopiarArchivoDescarga(BusinessVariables.Directorios.RepositorioInformacionConsulta, docto.Archivo, BusinessVariables.Directorios.RepositorioTemporalInformacionConsulta);
                 lstArchivos.Add(hf);
             }
             Session["selectedFiles"] = lstArchivos;
             MuestraPreview(info);
             divEvaluacion.Visible = bool.Parse(Request.QueryString["evaluacion"]);
         }
     }
     catch (Exception ex)
     {
         if (_lstError == null)
         {
             _lstError = new List <string>();
         }
         _lstError.Add(ex.Message);
         Alerta = _lstError;
     }
 }
Exemple #17
0
        protected void OnClick(object sender, EventArgs e)
        {
            try
            {
                LinkButton btn = (LinkButton)sender;
                BusinessFile.MoverTemporales(BusinessVariables.Directorios.CarpetaTemporal, BusinessVariables.Directorios.RepositorioTemporal, new List <string> {
                    btn.CommandArgument
                });

                string script = string.Format("window.open('https://docs.google.com/viewer?url=http://{0}/tmp/{1}','_blank')", WebConfigurationManager.AppSettings["siteUrl"], btn.CommandArgument);
                ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "ScriptViewer", script, true);
            }
            catch (Exception ex)
            {
                if (_lstError == null)
                {
                    _lstError = new List <string>();
                }
                _lstError.Add(ex.Message);
                Alerta = _lstError;
            }
        }
Exemple #18
0
 protected void btnPreviewDocument_OnClick(object sender, EventArgs e)
 {
     try
     {
         LinkButton btn = (LinkButton)sender;
         BusinessFile.CopiarSitioTemporal(BusinessVariables.Directorios.RepositorioInformacionConsulta, BusinessVariables.Directorios.CarpetaTemporal, new List <string> {
             btn.CommandArgument
         });
         string url = string.Format("https://docs.google.com/viewer?url={0}{1}", BusinessVariables.Directorios.CarpetaTemporalSitio, btn.CommandArgument);
         url = Page.ResolveUrl("~/Preview/FrmPreview.aspx?urlGoogle=" + url);
         string script = string.Format("window.open('{0}','_blank')", url);
         ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "ScriptViewer", script, true);
     }
     catch (Exception ex)
     {
         if (_lstError == null)
         {
             _lstError = new List <string>();
         }
         _lstError.Add(ex.Message);
         Alerta = _lstError;
     }
 }
Exemple #19
0
        protected void btnGuardar_OnClick(object sender, EventArgs e)
        {
            try
            {
                if (txtNombreCatalogo.Text.Trim() == string.Empty)
                {
                    throw new Exception("Debe especificar un nombre.");
                }
                if (!rbtnManual.Checked && !rbtnArchivo.Checked)
                {
                    throw new Exception("Debe seleccionar tipo de carga.");
                }
                Catalogos cat = new Catalogos
                {
                    Descripcion      = txtNombreCatalogo.Text,
                    DescripcionLarga = txtDescripcionCatalogo.Text,
                    IdUsuarioAlta    = ((Usuario)Session["UserData"]).Id
                };
                if (rbtnArchivo.Checked)
                {
                    if (Session["ArchivoCarga"].ToString() != String.Empty)
                    {
                        if (rbtnHojas.SelectedItem.Value.Trim() == string.Empty)
                        {
                            throw new Exception("Seleccione una horja del archivo.");
                        }
                        if (EsAlta)
                        {
                            _servicioCatalogo.CrearCatalogoExcel(cat, true, hfFileName.Value, rbtnHojas.SelectedValue);
                        }
                        else
                        {
                            cat.Id = IdCatalogo;
                            cat.IdUsuarioModifico = ((Usuario)Session["UserData"]).Id;
                            _servicioCatalogo.ActualizarCatalogoExcel(cat, true, hfFileName.Value, rbtnHojas.SelectedValue);
                        }

                        BusinessFile.LimpiarRepositorioTemporal(new List <string> {
                            hfFileName.Value
                        });
                        LimpiarCampos();
                    }
                }
                else
                {
                    if (EsAlta)
                    {
                        _servicioCatalogo.CrearCatalogo(cat, true, ((List <CatalogoGenerico>)Session["registrosCatalogos"]));
                    }
                    else
                    {
                        cat.Id = IdCatalogo;
                        cat.IdUsuarioModifico = ((Usuario)Session["UserData"]).Id;
                        _servicioCatalogo.ActualizarCatalogo(cat, true, ((List <CatalogoGenerico>)Session["registrosCatalogos"]));
                    }
                }
                LimpiarCampos();
                if (OnAceptarModal != null)
                {
                    OnAceptarModal();
                }
            }
            catch (Exception ex)
            {
                if (_lstError == null)
                {
                    _lstError = new List <string>();
                }
                _lstError.Add(ex.Message);
                Alerta = _lstError;
            }
        }
Exemple #20
0
                public static MailMessage CreateReplyNewTicket(Mail source)
                {
                    MailMessage reply = new MailMessage();

                    try
                    {
                        string      attname;
                        ArbolAcceso arbol;
                        Mascara     mascara;

                        ObtenerFormulario(out arbol, out mascara);

                        Attachment att = source.Attachments.Any() ? source.Attachments[0] : null;
                        bool       agregaArchivo;
                        bool       eliminoArchivo;
                        string     subject = source.Subject.Replace("(Trial Version)", string.Empty).Trim();
                        List <HelperCampoMascaraCaptura> capturaMascara = GeneraCaptura(mascara, source.From.Address, subject, source.TextBody, source.Attachments, out attname, out agregaArchivo, out eliminoArchivo);

                        Usuario user = new BusinessUsuarios().GetUsuarioByCorreo(source.From.Address);
                        if (user == null)
                        {
                            string[]        nombreCompleto  = source.From.Name.Trim().Split(' ');
                            string          nombre          = nombreCompleto.Any() ? nombreCompleto.Length > 3 ? string.Format("{0} {1}", nombreCompleto[0], 1) : nombreCompleto[0] : string.Empty;
                            string          apellidoPaterno = nombreCompleto.Length > 4 ? nombreCompleto[nombreCompleto.Length - 2] : nombreCompleto.Length > 1 ? nombreCompleto[1] : string.Empty;
                            string          apellidoMaterno = nombreCompleto.Length > 4 ? nombreCompleto[nombreCompleto.Length - 1] : nombreCompleto.Length > 2 ? nombreCompleto[2] : string.Empty;
                            PreTicketCorreo preticket       = new BusinessTicket().GeneraPreticketCorreo(nombre, apellidoPaterno, apellidoMaterno, source.From.Address.Trim(), subject, source.TextBody, attname);
                            if (preticket != null)
                            {
                                if (att != null && agregaArchivo)
                                {
                                    File.Move(ConfigurationManager.AppSettings["Repositorio"] + ConfigurationManager.AppSettings["CarpetaTemporal"] + attname, ConfigurationManager.AppSettings["Repositorio"] + ConfigurationManager.AppSettings["CarpetaTemporal"] + attname.Replace("ticketid", preticket.Guid));
                                    attname = attname.Replace("ticketid", preticket.Guid);
                                    BusinessFile.MoverTemporales(ConfigurationManager.AppSettings["Repositorio"] + ConfigurationManager.AppSettings["CarpetaTemporal"], ConfigurationManager.AppSettings["RepositorioCorreos"], new List <string> {
                                        attname
                                    });
                                    BusinessFile.CopiarArchivo(ConfigurationManager.AppSettings["RepositorioCorreos"], ConfigurationManager.AppSettings["Repositorio"] + ConfigurationManager.AppSettings["RepositorioMascara"], attname);
                                }
                                reply.From = new MailAddress(source.To[0].Address);
                                reply.To.Add(source.From.Address);
                                reply.ReplyToList.Add(source.To[0].Address);
                                string id = source.Headers.GetValueOfKey("Message-ID");
                                reply.Headers.Add("In-Reply-To", id);
                                string references = source.Headers.GetValueOfKey("References");

                                if (string.IsNullOrEmpty(references))
                                {
                                    references += "~guidpreticket&" + preticket.Guid + "~";
                                }

                                reply.Headers.Add("References", references);

                                reply.Subject = "Confirmar Ticket";

                                reply.Subject    = reply.Subject.Replace("(Trial Version)", string.Empty).Trim();
                                reply.IsBodyHtml = true;
                                reply.Body       = GeneraRespuestaPreTicketCorreo(source.From.Address, source.From.Name, source.HtmlBody, source.SentDate.ToString(CultureInfo.InvariantCulture), preticket.Guid, eliminoArchivo);
                            }
                        }
                        else
                        {
                            Ticket ticket = new BusinessTicket().CrearTicket(user.Id, user.Id, arbol.Id, capturaMascara, (int)BusinessVariables.EnumeradoresKiiniNet.EnumCanal.Correo, mascara.Random, true, true);
                            if (ticket != null)
                            {
                                if (att != null && agregaArchivo)
                                {
                                    File.Move(ConfigurationManager.AppSettings["Repositorio"] + ConfigurationManager.AppSettings["CarpetaTemporal"] + attname, ConfigurationManager.AppSettings["Repositorio"] + ConfigurationManager.AppSettings["CarpetaTemporal"] + attname.Replace("ticketid", ticket.Id.ToString()));
                                    attname = attname.Replace("ticketid", ticket.Id.ToString());
                                    BusinessFile.MoverTemporales(ConfigurationManager.AppSettings["Repositorio"] + ConfigurationManager.AppSettings["CarpetaTemporal"], ConfigurationManager.AppSettings["RepositorioCorreos"], new List <string> {
                                        attname
                                    });
                                    BusinessFile.CopiarArchivo(ConfigurationManager.AppSettings["RepositorioCorreos"], ConfigurationManager.AppSettings["Repositorio"] + ConfigurationManager.AppSettings["RepositorioMascara"], attname);
                                }
                                reply.From = new MailAddress(source.To[0].Address);
                                reply.To.Add(source.From.Address);
                                reply.ReplyToList.Add(source.To[0].Address);
                                string id = source.Headers.GetValueOfKey("Message-ID");
                                reply.Headers.Add("In-Reply-To", id);
                                string references = source.Headers.GetValueOfKey("References");

                                if (string.IsNullOrEmpty(references))
                                {
                                    references += "~ticket&" + ticket.Id + "~";
                                }

                                reply.Headers.Add("References", references);

                                if (!source.Subject.StartsWith("Re:", StringComparison.OrdinalIgnoreCase))
                                {
                                    reply.Subject = "Re: ";
                                }

                                reply.Subject += source.Subject;

                                reply.Subject    = reply.Subject.Replace("(Trial Version)", string.Empty).Trim();
                                reply.IsBodyHtml = true;
                                reply.Body       = GeneraRespuestaTicket(source.From.Address, source.From.Name, source.HtmlBody, source.SentDate.ToString(CultureInfo.InvariantCulture), ticket.Id, ticket.ClaveRegistro, eliminoArchivo);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message);
                    }

                    return(reply);
                }
        public IResponse <NoValue> CreateXlsxFile(List <EthereumBlockModel> list, long jobId)
        {
            var response = new Response <NoValue>();

            try
            {
                using (var excel = new ExcelPackage())
                {
                    var stopwatch = Stopwatch.StartNew();

                    excel.Workbook.Worksheets.Add("Prometheus");

                    var headerRow = new List <string[]>()
                    {
                        new string[] { "BlockNumber", "TimeStamp", "Hash", "From", "To", "Value", "Status" }
                    };

                    var headerRange = "A1:" + Char.ConvertFromUtf32(headerRow[0].Length + 64) + "1";

                    var worksheet = excel.Workbook.Worksheets["Prometheus"];

                    worksheet.Cells[headerRange].LoadFromArrays(headerRow);
                    worksheet.Cells[headerRange].Style.Font.Bold = true;

                    var cellData = list.SelectMany(b => b.BlockTransactions,
                                                   (b, t) => new ExcelEthereumBlockModel
                    {
                        BlockNumber = b.BlockNumber,
                        TimeStamp   = b.TimeStamp,
                        Hash        = t.Hash,
                        From        = t.From,
                        To          = t.To,
                        Value       = t.Value,
                        Status      = t.Status.ToString()
                    });

                    var type            = typeof(ExcelEthereumBlockModel);
                    var numberOfColumns = type.GetProperties().Length;

                    var cellDataRange = "A2:" + Char.ConvertFromUtf32(numberOfColumns + 64) + $"{cellData.Count() + 1}";

                    worksheet.Cells[cellDataRange].LoadFromCollection(cellData);
                    worksheet.Cells["B2:B" + $"{cellData.Count() + 1}"].Style.Numberformat.Format = "yyyy-mm-dd hh:mm:ss";
                    worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns();

                    var excelFileByteContent = excel.GetAsByteArray();

                    var businessFile = new BusinessFile
                    {
                        File          = excelFileByteContent,
                        JobTimelineId = jobId
                    };

                    _entity.BusinessFile.Add(businessFile);
                    _entity.SaveChanges();

                    stopwatch.Stop();
                    _logger.Information($"BusinessAdapterService.CreateXlsxFile(list: {list.Count}, jobId: {jobId}). Time elapsed: {stopwatch.Elapsed.TotalSeconds} seconds.");
                }
            }
            catch (Exception ex)
            {
                _logger.Information($"BusinessAdapterService.CreateXlsxFile(list: {list.Count}, jobId: {jobId}");
                _logger.Error(ex.Message);
                response.Status  = StatusEnum.Error;
                response.Message = ex.Message;
            }

            return(response);
        }
        public IResponse <NoValue> CreateCsvFile(List <EthereumBlockModel> list, long jobId)
        {
            var response = new Response <NoValue>();

            try
            {
                using (var ms = new MemoryStream())
                    using (var sw = new StreamWriter(ms))
                    {
                        var stopwatch = Stopwatch.StartNew();

                        var writer = new CsvWriter(sw);

                        writer.Configuration.Delimiter = ";";

                        writer.WriteHeader <ExcelEthereumBlockModel>();

                        writer.NextRecord();

                        foreach (var block in list)
                        {
                            foreach (var transaction in block.BlockTransactions)
                            {
                                writer.WriteField(block.BlockNumber);
                                writer.WriteField(block.TimeStamp);
                                writer.WriteField(transaction.Hash);
                                writer.WriteField(transaction.From);
                                writer.WriteField(transaction.To);
                                writer.WriteField(transaction.Value);
                                writer.WriteField(transaction.Status.ToString());

                                writer.NextRecord();
                            }
                        }

                        writer.Flush();
                        sw.Flush();

                        var csvFileByteContent = ms.ToArray();

                        var businessFile = new BusinessFile
                        {
                            File          = csvFileByteContent,
                            JobTimelineId = jobId
                        };

                        _entity.BusinessFile.Add(businessFile);
                        _entity.SaveChanges();

                        stopwatch.Stop();
                        _logger.Information($"BusinessAdapterService.CreateCsvFile(list: {list.Count}, jobId: {jobId}). Time elapsed: {stopwatch.Elapsed.TotalSeconds} seconds.");
                    }

                response.Status = StatusEnum.Success;
            }
            catch (Exception ex)
            {
                _logger.Information($"BusinessAdapterService.CreateCsvFile(list: {list.Count}, jobId: {jobId}");
                _logger.Error(ex.Message);
                response.Status  = StatusEnum.Error;
                response.Message = ex.Message;
            }

            return(response);
        }
Exemple #23
0
        public DashboardAdministrador GetDashboardAdministrador()
        {
            DashboardAdministrador results;
            DataBaseModelContext   db = new DataBaseModelContext();

            try
            {
                string connection = (((System.Data.EntityClient.EntityConnection)(db.Connection)).StoreConnection).ConnectionString;

                db.ContextOptions.ProxyCreationEnabled = _proxy;
                List <int> userFilters = new List <int>
                {
                    (int)BusinessVariables.EnumTiposUsuario.Empleado,
                    (int)BusinessVariables.EnumTiposUsuario.Cliente,
                    (int)BusinessVariables.EnumTiposUsuario.Proveedor
                };

                results = new DashboardAdministrador();

                results.UsuariosRegistrados = db.Usuario.Count(c => userFilters.Contains(c.IdTipoUsuario));
                results.UsuariosActivos     = db.Usuario.Count(c => userFilters.Contains(c.IdTipoUsuario) && c.Habilitado && c.Activo);
                results.TicketsCreados      = db.Ticket.Count();
                results.Operadores          = db.Usuario.Count(c => c.IdTipoUsuario == (int)BusinessVariables.EnumTiposUsuario.Agentes && c.Habilitado && c.Activo);

                DataTable dtTickets = new DataTable("dt");
                dtTickets.Columns.Add(new DataColumn("Id", typeof(int)));
                dtTickets.Columns.Add(new DataColumn("Descripcion", typeof(string)));
                dtTickets.Columns.Add(new DataColumn("Color", typeof(string)));
                dtTickets.Columns.Add(new DataColumn("Total", typeof(decimal)));
                foreach (GraficoConteo datos in db.Ticket.Join(db.Canal, ticket => ticket.IdCanal, canal => canal.Id, (ticket, canals) => new { ticket, canals }).GroupBy(g => g.canals).Select(s => new GraficoConteo {
                    Id = s.Key.Id, Descripcion = s.Key.Descripcion, Color = s.Key.ColorGrafico, Total = s.Count()
                }).ToList())
                {
                    dtTickets.Rows.Add(datos.Id, datos.Descripcion, datos.Color, datos.Total);
                }
                results.GraficoTicketsCreadosCanal = dtTickets;


                DataTable dtUsuarios = new DataTable("dt");
                dtUsuarios.Columns.Add(new DataColumn("Id", typeof(int)));
                dtUsuarios.Columns.Add(new DataColumn("Descripcion", typeof(string)));
                dtUsuarios.Columns.Add(new DataColumn("Color", typeof(string)));
                dtUsuarios.Columns.Add(new DataColumn("Total", typeof(decimal)));
                foreach (GraficoConteo datos in db.Usuario.Join(db.TipoUsuario, users => users.IdTipoUsuario, tipoUsuario => tipoUsuario.Id, (users, tipoUsuario) => new { users, tipoUsuario }).Where(w => userFilters.Contains(w.users.IdTipoUsuario)).GroupBy(g => g.tipoUsuario).Select(s => new GraficoConteo {
                    Id = s.Key.Id, Descripcion = s.Key.Descripcion, Color = s.Key.Id == (int)BusinessVariables.EnumTiposUsuario.Cliente ? "#B5E6A1" : s.Key.Id == (int)BusinessVariables.EnumTiposUsuario.Proveedor ? "#FFF0B3" : "#80D9FF", Total = s.Count()
                }).ToList())
                {
                    dtUsuarios.Rows.Add(datos.Id, datos.Descripcion, datos.Color, datos.Total);
                }
                results.GraficoUsuariosRegistrados = dtUsuarios;

                DataTable dtAlmacenamiento = new DataTable("dt");
                dtAlmacenamiento.Columns.Add(new DataColumn("Ocupado", typeof(double)));
                dtAlmacenamiento.Columns.Add(new DataColumn("Libre", typeof(double)));


                long maxSize = 10024;
                //string queryString = "SELECT DataBaseName = DB_NAME(database_id), \n" +
                //                     "LogSize = CAST(SUM(CASE WHEN type_desc = 'LOG' THEN size END) * 8 / 1024 AS DECIMAL(8,2)), \n" +
                //                     "RowSize_mb = CAST(SUM(CASE WHEN type_desc = 'ROWS' THEN size END) * 8 / 1024 AS DECIMAL(8,2)), \n" +
                //                     "TotalSize_mb = CAST(SUM(size) * 8 / 1024 AS DECIMAL(8,2)) \n" +
                //                     "FROM sys.master_files \n" +
                //                     "WHERE database_id = DB_ID() GROUP BY database_id";
                string queryString = "select name DataBaseName, \n" +
                                     "(SELECT cast((size*8)/1024 as decimal) \n" +
                                     "FROM sys.database_files \n" +
                                     "where type_desc = 'LOG') LogSize, \n" +
                                     "cast((size*8)/1024 as decimal) RowSize_mb, \n" +

                                     "(SELECT cast((size*8)/1024 as decimal) \n" +
                                     "FROM sys.database_files \n" +
                                     "where type_desc = 'LOG') + cast((size*8)/1024 as decimal) TotalSize_mb \n" +

                                     "FROM sys.database_files \n" +
                                     "where type_desc = 'ROWS'";
                //string queryString = "SELECT file_id, name, type_desc, physical_name, size, max_size \n" +
                //                     "FROM sys.database_files" ;
                SqlDataAdapter adapter = new SqlDataAdapter(queryString, connection);

                DataSet ds = new DataSet();
                adapter.Fill(ds, "Almacenamiento");

                DirectoryInfo dInfo          = new DirectoryInfo(BusinessVariables.Directorios.RepositorioRepositorio);
                long          sizeOfDirBytes = BusinessFile.DirectorySize(dInfo, true);
                double        sizeOfDirKb    = ((double)sizeOfDirBytes) / 1024;
                double        sizeOfDirMb    = sizeOfDirKb / 1024;
                double        sizeOfDirGb    = sizeOfDirMb / 1024;
                double        totalSize      = Math.Round(double.Parse((ds.Tables[0].Rows[0][3].ToString())) + sizeOfDirMb, 2);
                //if (totalSize > 1024)
                //    totalSize = totalSize / 1024;
                dtAlmacenamiento.Rows.Add(Math.Round(totalSize, 0, MidpointRounding.ToEven), Math.Round(maxSize - totalSize, 0, MidpointRounding.ToEven));
                results.TotalArchivos         = Directory.GetFiles(dInfo.FullName, "*.*", SearchOption.AllDirectories).Length;
                results.GraficoAlmacenamiento = dtAlmacenamiento;



                results.Categorias  = db.Area.Count();
                results.Articulos   = db.InformacionConsulta.Count();
                results.Formularios = db.Mascara.Count();
                results.Catalogos   = db.Catalogos.Count(c => !c.Sistema);
                results.OperadorRol = db.Rol.Where(w => w.Id != (int)BusinessVariables.EnumRoles.AccesoCentroSoporte)
                                      .Join(db.RolTipoUsuario, rol => rol.Id, roltipousuario => roltipousuario.IdRol, (rol, roltipousuario) => new { r = rol, rtu = roltipousuario })
                                      .Join(db.UsuarioRol, roltu => roltu.rtu.Id, usuariorol => usuariorol.IdRolTipoUsuario, (roltipousuario, usuariorol) => new { rtu = roltipousuario, ur = usuariorol })
                                      .GroupJoin(db.Usuario.Where(w => w.IdTipoUsuario == (int)BusinessVariables.EnumTiposUsuario.Agentes), ur => ur.ur.IdUsuario, users => users.Id, (usuariorol, usuarios) => new { ur = usuariorol, u = usuarios })
                                      .Select(s => new { s.ur.rtu.r })
                                      .GroupBy(g => g.r)
                                      .Select(s => new GraficoConteo {
                    Id = s.Key.Id, Descripcion = s.Key.Descripcion, Total = s.Count()
                }).ToList();

                results.Organizacion = db.Organizacion.Count();
                results.Ubicacion    = db.Ubicacion.Count();
                results.Puestos      = db.Puesto.Count();
                results.Grupos       = db.GrupoUsuario.Count();
                results.Horarios     = db.Horario.Count();
                results.Feriados     = db.DiasFeriados.Count();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
            return(results);
        }
        public IResponse <NoValue> CreateXlsxFile(List <LitecoinBlockModel> list, long jobId)
        {
            var response = new Response <NoValue>();

            try
            {
                using (var excel = new ExcelPackage())
                {
                    var stopwatch = Stopwatch.StartNew();

                    excel.Workbook.Worksheets.Add("tx");
                    excel.Workbook.Worksheets.Add("txIn");
                    excel.Workbook.Worksheets.Add("txOut");

                    var worksheetTx = excel.Workbook.Worksheets["tx"];
                    worksheetTx.SetValue("A1", "BlockNumber");
                    worksheetTx.SetValue("B1", "txHash");
                    worksheetTx.SetValue("C1", "Timestamp");
                    worksheetTx.SetValue("D1", "TotalOutValue");
                    worksheetTx.Row(1).Style.Font.Bold = true;

                    var worksheetTxIn = excel.Workbook.Worksheets["txIn"];
                    worksheetTxIn.SetValue("A1", "txHash");
                    worksheetTxIn.SetValue("B1", "Address");
                    worksheetTxIn.Row(1).Style.Font.Bold = true;

                    var worksheetTxOut = excel.Workbook.Worksheets["txOut"];
                    worksheetTxOut.SetValue("A1", "txHash");
                    worksheetTxOut.SetValue("B1", "Address");
                    worksheetTxOut.SetValue("C1", "Value");
                    worksheetTxOut.Row(1).Style.Font.Bold = true;

                    int rowCounterTx    = 2;
                    int rowCounterTxIn  = 2;
                    int rowCounterTxOut = 2;

                    foreach (var block in list)
                    {
                        foreach (var transaction in block.TransactionList)
                        {
                            worksheetTx.SetValue(rowCounterTx, 1, block.BlockNumber);
                            worksheetTx.SetValue(rowCounterTx, 2, transaction.TransactionHash);
                            worksheetTx.SetValue(rowCounterTx, 3, block.Time);
                            worksheetTx.SetValue(rowCounterTx, 4, transaction.TotalOutValue);

                            foreach (var txIn in transaction.TransactionInputs)
                            {
                                worksheetTxIn.SetValue(rowCounterTxIn, 1, transaction.TransactionHash);
                                worksheetTxIn.SetValue(rowCounterTxIn, 2, txIn.Address);

                                rowCounterTxIn++;
                            }

                            foreach (var txOut in transaction.TransactionOutputs)
                            {
                                worksheetTxOut.SetValue(rowCounterTxOut, 1, transaction.TransactionHash);
                                worksheetTxOut.SetValue(rowCounterTxOut, 2, txOut.Address);
                                worksheetTxOut.SetValue(rowCounterTxOut, 3, txOut.Value);

                                rowCounterTxOut++;
                            }

                            rowCounterTx++;
                        }
                    }

                    worksheetTx.Column(3).Style.Numberformat.Format = "yyyy-mm-dd hh:mm:ss";

                    worksheetTx.Cells[worksheetTx.Dimension.Address].AutoFitColumns();
                    worksheetTxIn.Cells[worksheetTxIn.Dimension.Address].AutoFitColumns();
                    worksheetTxOut.Cells[worksheetTxOut.Dimension.Address].AutoFitColumns();

                    var excelFileByteContent = excel.GetAsByteArray();

                    var businessFile = new BusinessFile
                    {
                        File          = excelFileByteContent,
                        JobTimelineId = jobId
                    };

                    _entity.BusinessFile.Add(businessFile);
                    _entity.SaveChanges();

                    stopwatch.Stop();
                    _logger.Information($"BusinessAdapterService.CreateXlsxFile(list: {list.Count}, jobId: {jobId}). Time elapsed: {stopwatch.Elapsed.TotalSeconds} seconds.");
                }
            }
            catch (Exception ex)
            {
                _logger.Information($"BusinessAdapterService.CreateXlsxFile(list: {list.Count}, jobId: {jobId}");
                _logger.Error(ex.Message);
                response.Status  = StatusEnum.Error;
                response.Message = ex.Message;
            }

            return(response);
        }
Exemple #25
0
        public InformacionConsulta ActualizarInformacionConsulta(int idInformacionConsulta, InformacionConsulta informacion, List <string> documentosDescarga)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                if (db.InformacionConsulta.Any(a => a.Descripcion == informacion.Descripcion && a.Id != idInformacionConsulta))
                {
                    throw new Exception("Este Artículo ya existe.");
                }
                db.ContextOptions.LazyLoadingEnabled = true;
                InformacionConsulta info = db.InformacionConsulta.SingleOrDefault(s => s.Id == idInformacionConsulta);
                if (info == null)
                {
                    return(null);
                }
                info.Descripcion       = informacion.Descripcion.Trim();
                info.IdUsuarioModifico = informacion.IdUsuarioAlta;
                info.FechaModificacion = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture);
                info.Habilitado        = true;
                info.InformacionConsultaDatos.First().Datos      = informacion.InformacionConsultaDatos.First().Datos;
                info.InformacionConsultaDatos.First().Busqueda   = informacion.InformacionConsultaDatos.First().Busqueda;
                info.InformacionConsultaDatos.First().Tags       = informacion.InformacionConsultaDatos.First().Tags;
                info.InformacionConsultaDatos.First().Habilitado = informacion.InformacionConsultaDatos.First().Habilitado;

                List <InformacionConsultaDocumentos> documentosEliminar = new List <InformacionConsultaDocumentos>();
                List <string> archivosNuevos = new List <string>();



                foreach (InformacionConsultaDocumentos doctoExist in info.InformacionConsultaDocumentos)
                {
                    //if (!documentosDescarga.Any(a => a.Contains(doctoExist.Archivo) || (info.Id + a).Contains(doctoExist.Archivo)))
                    //{
                    documentosEliminar.Add(doctoExist);
                    //}
                }

                foreach (string doctoNuevo in documentosDescarga)
                {
                    if (!info.InformacionConsultaDocumentos.Any(a => a.Archivo == doctoNuevo))
                    {
                        info.InformacionConsultaDocumentos.Add(new InformacionConsultaDocumentos
                        {
                            Archivo         = info.Id + doctoNuevo,
                            FechaAlta       = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture),
                            IdTipoDocumento = ObtenerTipoDocumento(doctoNuevo),
                            IdUsuarioAlta   = informacion.IdUsuarioAlta
                        });
                        archivosNuevos.Add(doctoNuevo);
                    }
                    else
                    {
                        documentosEliminar.RemoveAll(r => r.Archivo == doctoNuevo);
                    }
                }

                foreach (InformacionConsultaDocumentos documentos in documentosEliminar)
                {
                    db.InformacionConsultaDocumentos.DeleteObject(documentos);
                }



                db.SaveChanges();
                foreach (InformacionConsultaDocumentos documentos in documentosEliminar)
                {
                    BusinessFile.EliminarArchivo(BusinessVariables.Directorios.RepositorioTemporalInformacionConsulta, documentos.Archivo);
                    BusinessFile.EliminarArchivo(BusinessVariables.Directorios.RepositorioInformacionConsulta, documentos.Archivo);
                }

                BusinessFile.MoverTemporales(BusinessVariables.Directorios.RepositorioTemporalInformacionConsulta, BusinessVariables.Directorios.RepositorioInformacionConsulta, documentosDescarga);
                BusinessFile.RenombrarArchivosConsulta(archivosNuevos, info.Id);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
            return(informacion);
        }
        public async Task <HttpResponseMessage> CommonUploadProcess(bool isSingle, string fileType, string relID, string fileName)
        {
            var defaultUploadFilesUrl = System.Web.HttpContext.Current.Server.MapPath(HttpContext.Current.Request["folder"] + "\\");
            var imgaeRecord           = new BusinessImage();
            var fileRecord            = new BusinessFile();

            var mainID = Guid.NewGuid();

            switch (fileType)
            {
            case "commonFile":
                mainID = fileRecord.ID;
                defaultUploadFilesUrl += System.Configuration.ConfigurationManager.AppSettings["DefaultCommonFileUploadUrl"];
                break;

            case "imageFile":
                mainID = imgaeRecord.ID;
                defaultUploadFilesUrl += System.Configuration.ConfigurationManager.AppSettings["DefaultCommonImageUploadUrl"];
                break;

            default:
                mainID = fileRecord.ID;
                defaultUploadFilesUrl += System.Configuration.ConfigurationManager.AppSettings["DefaultCommonUploadUrl"];
                break;
            }

            if (!Directory.Exists(defaultUploadFilesUrl))
            {
                Directory.CreateDirectory(defaultUploadFilesUrl);
            }

            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }
            CustomMultipartFormDataStreamProvider provider = new CustomMultipartFormDataStreamProvider(defaultUploadFilesUrl, mainID + "_"); //mainID + "_"

            var initialFileName = fileName.ToLower();
            var fileSize        = (long)Request.Content.Headers.ContentLength;
            var tempFileName    = provider.TempFileName;

            if (tempFileName != null)
            {
                initialFileName = tempFileName;
            }

            List <string> files = new List <string>();

            if (initialFileName.ToLower() == fileName.ToLower())
            {
                try
                {
                    //await _ProcessUploadFile(provider, files, fileType, imgaeRecord, fileRecord, defaultUploadFilesUrl, mainID, relID, fileSize);
                    await Request.Content.ReadAsMultipartAsync(provider);

                    foreach (MultipartFileData file in provider.FileData)
                    {
                        files.Add(Path.GetFileName(file.LocalFileName));

                        #region 持久化关系处理

                        var localFileName  = Path.GetFileName(file.LocalFileName).ToLower();
                        var saveFileSuffix = Path.GetExtension(file.LocalFileName).ToLower();
                        var saveFileName   = localFileName.Substring((mainID + "_").Length, localFileName.Length - (mainID + "_").Length - saveFileSuffix.Length);
                        switch (fileType)
                        {
                        case "imageFile":
                            imgaeRecord.Name              = saveFileName;
                            imgaeRecord.UploadPath        = defaultUploadFilesUrl;
                            imgaeRecord.Description       = "图形文件";
                            imgaeRecord.OriginalFileName  = localFileName;
                            imgaeRecord.UploadFileSuffix  = saveFileSuffix;
                            imgaeRecord.UploadedTime      = DateTime.Now;
                            imgaeRecord.FileSize          = (long)fileSize;
                            imgaeRecord.RelevanceObjectID = Guid.Parse(relID);
                            _ImageService.SaveSingleWithUniquenessRelevanceID(imgaeRecord);
                            break;

                        default:
                            fileRecord.Name                   = saveFileName;
                            fileRecord.UploadPath             = defaultUploadFilesUrl;
                            fileRecord.Description            = "普通文件";
                            fileRecord.OriginalFileName       = localFileName;
                            fileRecord.UploadFileSuffix       = saveFileSuffix;
                            fileRecord.AttachmentTimeUploaded = DateTime.Now;
                            fileRecord.FileSize               = (long)fileSize;
                            fileRecord.RelevanceObjectID      = Guid.Parse(relID);
                            _FileService.SaveSingleWithUniquenessRelevanceID(fileRecord);
                            break;
                        }
                        #endregion
                    }
                    return(Request.CreateResponse(HttpStatusCode.OK, files));
                }
                catch (System.Exception e)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e));
                }
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.OK, files));
            }
        }