Пример #1
0
        public override Object UploadSignedConsent(int id, string type, string uploadpath)
        {
            BO.Document docInfo   = new BO.Document();
            int         companyid = 0;

            string errMessage = string.Empty;
            string filename   = string.Empty;

            using (var dbContextTransaction = _context.Database.BeginTransaction())
            {
                try
                {
                    if (type.ToUpper().Contains(EN.Constants.ConsentType))
                    {
                        companyid = System.Convert.ToInt16(type.Split('_')[1]);
                        if (_context.MidasDocuments.Any(cc => cc.ObjectId == id &&
                                                        cc.ObjectType == EN.Constants.ConsentType + "_" + companyid &&
                                                        (cc.IsDeleted.HasValue == false || (cc.IsDeleted.HasValue == true && cc.IsDeleted.Value == false))))
                        {
                            //throw new Exception("Company, Case and Consent data already exists.");
                            dbContextTransaction.Rollback();
                            return(new BO.ErrorObject {
                                errorObject = "", ErrorMessage = "Company, Case and Consent data already exists.", ErrorLevel = ErrorLevel.Error
                            });
                        }
                    }

                    MidasDocument midasdoc = _context.MidasDocuments.Add(new MidasDocument()
                    {
                        ObjectType   = type,
                        ObjectId     = id,
                        DocumentName = Path.GetFileName(uploadpath),
                        DocumentPath = uploadpath.Replace(ConfigurationManager.AppSettings.Get("LOCAL_UPLOAD_PATH"), ConfigurationManager.AppSettings.Get("BLOB_SERVER")),
                        CreateDate   = DateTime.UtcNow
                    });
                    _context.Entry(midasdoc).State = System.Data.Entity.EntityState.Added;
                    _context.SaveChanges();

                    if (type.ToUpper().Contains(EN.Constants.ConsentType))
                    {
                        type = EN.Constants.ConsentType;
                    }

                    CaseCompanyConsentDocument caseCompanyConsentDocument = _context.CaseCompanyConsentDocuments.Add(new CaseCompanyConsentDocument()
                    {
                        MidasDocumentId = midasdoc.Id,
                        CaseId          = id,
                        CompanyId       = companyid,
                        DocumentName    = Path.GetFileName(uploadpath),
                        CreateDate      = DateTime.UtcNow
                    });
                    _context.Entry(caseCompanyConsentDocument).State = System.Data.Entity.EntityState.Added;
                    _context.SaveChanges();
                    filename = caseCompanyConsentDocument.DocumentName;

                    docInfo.Status       = errMessage.Equals(string.Empty) ? "Success" : "Failed";
                    docInfo.Message      = errMessage;
                    docInfo.DocumentId   = midasdoc.Id;
                    docInfo.DocumentPath = errMessage.Equals(string.Empty) ? midasdoc.DocumentPath : midasdoc.DocumentName;
                    docInfo.DocumentName = midasdoc.DocumentName;
                    docInfo.id           = id;


                    if (docInfo.Status.ToUpper().Equals("SUCCESS"))
                    {
                        CompanyCaseConsentApprovalRepository CompanyCaseConsentApprovalRepository = new CompanyCaseConsentApprovalRepository(_context);
                        BO.CompanyCaseConsentApproval        companyCaseConsentApprovalBO         = new BO.CompanyCaseConsentApproval();
                        companyCaseConsentApprovalBO.CaseId             = id;
                        companyCaseConsentApprovalBO.CompanyId          = companyid;
                        companyCaseConsentApprovalBO.ConsentGivenTypeId = 3;
                        var result = CompanyCaseConsentApprovalRepository.Save(companyCaseConsentApprovalBO);
                        if (result is BO.ErrorObject)
                        {
                            return(new BO.ErrorObject {
                                errorObject = "", ErrorMessage = "Company, Case and Consent data already exists.", ErrorLevel = ErrorLevel.Error
                            });
                        }
                    }


                    dbContextTransaction.Commit();
                }
                catch (Exception err)
                {
                    dbContextTransaction.Rollback();
                    return(new BO.ErrorObject {
                        errorObject = "", ErrorMessage = "Error while saving consent", ErrorLevel = ErrorLevel.Error
                    });
                }
            }

            return((object)docInfo);
        }
Пример #2
0
        public override Object Upload(List <HttpContent> streamContent, string path, int id, string type, string uploadpath)
        {
            List <BO.Document> docInfo = new List <BO.Document>();

            uploadpath = uploadpath + path;
            Directory.CreateDirectory(uploadpath.ToString());
            int companyid = 0;

            foreach (HttpContent content in streamContent)
            {
                string errMessage = string.Empty;
                string filename   = string.Empty;
                using (var dbContextTransaction = _context.Database.BeginTransaction())
                {
                    try
                    {
                        if (type.ToUpper().Contains(EN.Constants.ConsentType))
                        {
                            companyid = System.Convert.ToInt16(type.Split('_')[1]);
                            if (_context.MidasDocuments.Any(cc => cc.ObjectId == id &&
                                                            cc.ObjectType == EN.Constants.ConsentType + "_" + companyid &&
                                                            (cc.IsDeleted.HasValue == false || (cc.IsDeleted.HasValue == true && cc.IsDeleted.Value == false))))
                            {
                                throw new Exception("Company, Case and Consent data already exists.");
                            }
                        }

                        MidasDocument midasdoc = _context.MidasDocuments.Add(new MidasDocument()
                        {
                            ObjectType   = type,
                            ObjectId     = id,
                            DocumentName = content.Headers.ContentDisposition.FileName.Replace("\"", string.Empty),
                            DocumentPath = ConfigurationManager.AppSettings.Get("BLOB_SERVER") + path.ToString(),
                            CreateDate   = DateTime.UtcNow
                        });
                        _context.Entry(midasdoc).State = System.Data.Entity.EntityState.Added;
                        _context.SaveChanges();

                        if (type.ToUpper().Contains(EN.Constants.ConsentType))
                        {
                            type = EN.Constants.ConsentType;
                        }
                        switch (type)
                        {
                        case EN.Constants.ConsentType:
                            CaseCompanyConsentDocument caseCompanyConsentDocument = _context.CaseCompanyConsentDocuments.Add(new CaseCompanyConsentDocument()
                            {
                                MidasDocumentId = midasdoc.Id,
                                CaseId          = id,
                                CompanyId       = companyid,
                                DocumentName    = content.Headers.ContentDisposition.FileName.Replace("\"", string.Empty),
                                CreateDate      = DateTime.UtcNow
                            });
                            _context.Entry(caseCompanyConsentDocument).State = System.Data.Entity.EntityState.Added;
                            _context.SaveChanges();
                            filename = caseCompanyConsentDocument.DocumentName;
                            break;

                        case EN.Constants.CaseType:
                            CaseDocument caseDoc = _context.CaseDocuments.Add(new CaseDocument()
                            {
                                MidasDocumentId = midasdoc.Id,
                                CaseId          = id,
                                DocumentName    = content.Headers.ContentDisposition.FileName.Replace("\"", string.Empty),
                                CreateDate      = DateTime.UtcNow
                            });
                            _context.Entry(caseDoc).State = System.Data.Entity.EntityState.Added;
                            _context.SaveChanges();
                            filename = caseDoc.DocumentName;
                            break;

                        case EN.Constants.VisitType:
                            CaseDocument visitDoc = _context.CaseDocuments.Add(new CaseDocument()
                            {
                                MidasDocumentId = midasdoc.Id,
                                CaseId          = id,
                                DocumentName    = content.Headers.ContentDisposition.FileName.Replace("\"", string.Empty),
                                CreateDate      = DateTime.UtcNow
                            });
                            _context.Entry(visitDoc).State = System.Data.Entity.EntityState.Added;
                            _context.SaveChanges();
                            filename = visitDoc.DocumentName;
                            break;
                        }

                        //docInfo.Type = type;

                        using (Stream stream = content.ReadAsStreamAsync().Result)
                        {
                            if (File.Exists(uploadpath + "/" + content.Headers.ContentDisposition.FileName.Replace("\"", string.Empty)))
                            {
                                errMessage = "DuplicateFileName";
                                dbContextTransaction.Rollback();
                            }
                            else if (!Enum.IsDefined(typeof(BO.GBEnums.FileTypes), content.Headers.ContentDisposition.FileName.Replace("\"", string.Empty).Split('.')[1]))
                            {
                                errMessage = "Invalid file extension";
                                dbContextTransaction.Rollback();
                            }
                            else if (!(System.Convert.ToDecimal(content.Headers.ContentLength / (1024.0m * 1024.0m)) > 0 && System.Convert.ToDecimal(content.Headers.ContentLength / (1024.0m * 1024.0m)) <= 1))
                            {
                                errMessage = "File size exccded the limit : 1MB";
                                dbContextTransaction.Rollback();
                            }
                            else
                            {
                                stream.Seek(0, SeekOrigin.Begin);
                                FileStream filestream = File.Create(uploadpath + "/" + content.Headers.ContentDisposition.FileName.Replace("\"", string.Empty));
                                stream.CopyTo(filestream);
                                stream.Close();
                                filestream.Close();
                                dbContextTransaction.Commit();
                            }
                        }
                        docInfo.Add(new BO.Document()
                        {
                            Status       = errMessage.Equals(string.Empty) ? "Success" : "Failed",
                            Message      = errMessage,
                            DocumentId   = midasdoc.Id,
                            DocumentPath = errMessage.Equals(string.Empty) ? midasdoc.DocumentPath + "/" + midasdoc.DocumentName : midasdoc.DocumentName,
                            DocumentName = midasdoc.DocumentName,
                            id           = id
                        });
                    }
                    catch (Exception err)
                    {
                        docInfo.Add(new BO.Document()
                        {
                            Status       = "Failed",
                            Message      = err.Message.ToString(),
                            DocumentId   = 0,
                            DocumentPath = "",
                            DocumentName = filename,
                            id           = id
                        });
                        dbContextTransaction.Rollback();
                    }
                }
            }
            return(docInfo);
        }
        public override Object SaveAsBlob(int objectId, int companyId, string objectType, string documentType, string uploadpath)
        {
            BO.Document docInfo    = new BO.Document();
            string      errMessage = string.Empty;
            string      errDesc    = string.Empty;

            using (var dbContextTransaction = _context.Database.BeginTransaction())
            {
                MidasDocument midasdoc = _context.MidasDocuments.Add(new MidasDocument()
                {
                    ObjectType   = documentType.ToUpper().Equals(EN.Constants.ConsentType) ? string.Concat(EN.Constants.ConsentType, "_" + companyId) : objectType,
                    ObjectId     = objectId,
                    DocumentType = documentType,
                    DocumentName = Path.GetFileName(uploadpath),//streamContent.Headers.ContentDisposition.FileName.Replace("\"", string.Empty),
                    DocumentPath = uploadpath,
                    CreateDate   = DateTime.UtcNow
                });
                _context.Entry(midasdoc).State = System.Data.Entity.EntityState.Added;
                _context.SaveChanges();

                if (documentType.ToUpper().Equals(EN.Constants.ConsentType))
                {
                    CaseCompanyConsentDocument caseCompConsentDoc = _context.CaseCompanyConsentDocuments.Add(new CaseCompanyConsentDocument()
                    {
                        MidasDocumentId = midasdoc.Id,
                        CaseId          = objectId,
                        DocumentType    = documentType,
                        CompanyId       = companyId,
                        DocumentName    = Path.GetFileName(uploadpath),//streamContent.Headers.ContentDisposition.FileName.Replace("\"", string.Empty),
                        CreateDate      = DateTime.UtcNow
                    });
                    _context.Entry(caseCompConsentDoc).State = System.Data.Entity.EntityState.Added;
                    _context.SaveChanges();

                    BO.CompanyCaseConsentApproval        companyCaseConsentApprovalBO         = new BO.CompanyCaseConsentApproval();
                    CompanyCaseConsentApprovalRepository CompanyCaseConsentApprovalRepository = new CompanyCaseConsentApprovalRepository(_context);
                    companyCaseConsentApprovalBO.CaseId    = objectId;
                    companyCaseConsentApprovalBO.CompanyId = companyId;
                    var result = CompanyCaseConsentApprovalRepository.Save(companyCaseConsentApprovalBO);
                    if (result is BO.ErrorObject)
                    {
                        errMessage = "Failed";
                        errDesc    = ((BO.ErrorObject)result).ErrorMessage;
                        dbContextTransaction.Rollback();
                    }
                    else
                    {
                        dbContextTransaction.Commit();
                    }
                }
                else
                {
                    CaseDocument caseDoc = _context.CaseDocuments.Add(new CaseDocument()
                    {
                        MidasDocumentId = midasdoc.Id,
                        CaseId          = objectId,
                        DocumentType    = documentType,
                        DocumentName    = Path.GetFileName(uploadpath),//streamContent.Headers.ContentDisposition.FileName.Replace("\"", string.Empty),
                        CreateDate      = DateTime.UtcNow
                    });
                    _context.Entry(caseDoc).State = System.Data.Entity.EntityState.Added;
                    _context.SaveChanges();
                    dbContextTransaction.Commit();
                }

                docInfo.Status       = errMessage.Equals(string.Empty) ? "Success" : "Failed";
                docInfo.Message      = errDesc;
                docInfo.DocumentId   = midasdoc.Id;
                docInfo.DocumentPath = errMessage.Equals(string.Empty) ? midasdoc.DocumentPath : midasdoc.DocumentName;
                docInfo.DocumentName = midasdoc.DocumentName;
                docInfo.DocumentType = errMessage.Equals(string.Empty) ? midasdoc.DocumentType : string.Empty;
                docInfo.id           = objectId;
            }

            return((Object)docInfo);
        }