public override Object SaveAsBlob(int objectId, int companyId, string objectType, string documentType, string uploadpath) { BO.Document docInfo = new BO.Document(); string errMessage = string.Empty; MidasDocument midasdoc = _context.MidasDocuments.Add(new MidasDocument() { ObjectType = 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(); VisitDocument visitDoc = _context.VisitDocuments.Add(new VisitDocument() { MidasDocumentId = midasdoc.Id, DocumentType = documentType, PatientVisitId = objectId, DocumentName = Path.GetFileName(uploadpath),//streamContent.Headers.ContentDisposition.FileName.Replace("\"", string.Empty), CreateDate = DateTime.UtcNow }); _context.Entry(visitDoc).State = System.Data.Entity.EntityState.Added; _context.SaveChanges(); 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.DocumentType = errMessage.Equals(string.Empty) ? midasdoc.DocumentType : string.Empty; docInfo.id = objectId; return((Object)docInfo); }
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 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); }
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()) { if (documentType.ToLower() == "profile") { var patientProfileDocumemnts = _context.MidasDocuments.Where(mid => mid.ObjectId == objectId && mid.DocumentType == documentType && (mid.IsDeleted.HasValue == false || (mid.IsDeleted.HasValue == true && mid.IsDeleted.Value == false))); patientProfileDocumemnts.ToList().ForEach(ppd => ppd.IsDeleted = true); _context.SaveChanges(); } 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(); PatientDocument patientDoc = _context.PatientDocuments.Add(new PatientDocument() { MidasDocumentId = midasdoc.Id, PatientId = objectId, DocumentType = documentType, DocumentName = Path.GetFileName(uploadpath),//streamContent.Headers.ContentDisposition.FileName.Replace("\"", string.Empty), CreateDate = DateTime.UtcNow }); _context.Entry(patientDoc).State = System.Data.Entity.EntityState.Added; _context.SaveChanges(); //Code to update User Info with ImageLink from midasdoc.DocumentPath if (patientDoc.DocumentType.ToLower() == "profile".ToLower()) { int PatientId = midasdoc.ObjectId; string ImageLink = midasdoc.DocumentPath; var patientUser = _context.Users.Where(p => p.id == PatientId && (p.IsDeleted.HasValue == false || (p.IsDeleted.HasValue == true && p.IsDeleted.Value == false))) .FirstOrDefault(); if (patientUser != null) { patientUser.ImageLink = ImageLink; _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); }
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); }