public IHttpActionResult LoadDocument(Guid messageId, Guid entityId, int?userId) { var _diadocApi = new Diadoc.Api.DiadocApi(DiadocConstants.DiadocClientId, DiadocConstants.DiadocApiUrl, new Diadoc.Api.Cryptography.WinApiCrypt()); var diadocAuthTokenLogin = _diadocApi.Authenticate(DiadocConstants.DiadocLogin, DiadocConstants.DiadocPassword); try { using (var db = new cis(User.Identity.Name, userId)) { var uacBoxId = db.GetDiadocBoxId(Constant.OwnerId); var document = db.Documents.FirstOrDefault(m => m.MessageId == messageId && m.EntityId == entityId && m.DocCardId == null); byte[] fileStream = GetDiadocFileStream(_diadocApi, diadocAuthTokenLogin, uacBoxId, document); string fileName = db.GetDiadocFileName(document) + ".zip"; db.DocIntegrationInsert(document.Id, fileName, fileStream, db.CurrentUser.Id); while (db.Documents.Any(m => m.MessageId == messageId && m.EntityId == entityId && m.DocCardId == null)) { continue; } var list = db.Documents.Where(m => m.MessageId == messageId && m.EntityId == entityId).AsNoTracking().AsQueryable(); return(Json <object>(GetDocCardResponceModel(db, list, string.Empty, string.Empty, 0, 15), JsonSettings.RuDateTimeFormat)); } } catch (Exception ex) { return(BadRequest(CISLibApp.Basic.Tools.BasicTools.GetErrorMessage(ex))); } }
public IHttpActionResult Authenticate([FromBody] object body) { try { var _diadocApi = new Diadoc.Api.DiadocApi(DiadocConstants.DiadocClientId, DiadocConstants.DiadocApiUrl, new Diadoc.Api.Cryptography.WinApiCrypt()); var requestX509 = JsonConvert.DeserializeObject <EasyCert>(JsonConvert.SerializeObject(body), JsonSettings.RuDateTimeFormat); var x509 = new System.Security.Cryptography.X509Certificates.X509Certificate2(); x509.Import(Convert.FromBase64String(requestX509.Signature)); //x509.PrivateKey = JsonConvert.DeserializeObject<System.Security.Cryptography.RSACryptoServiceProvider>(JsonConvert.SerializeObject(requestX509.PrivateKey), JsonSettings.RuDateTimeFormat); //var x509 = DiaDocController.GetCertificate(); //var authTokenCert1 = _diadocApi.Authenticate(x509.Thumbprint); //var b = x509.RawData; //var authTokenCert2 = _diadocApi.Authenticate(x509.RawData); var authTokenCert = _diadocApi.Authenticate(x509.RawData); return(Json <string>("OK!")); } catch (Exception ex) { return(BadRequest(CISLibApp.Basic.Tools.BasicTools.GetErrorMessage(ex))); } }
private static byte[] GetDiadocFileStream(Diadoc.Api.DiadocApi _diadocApi, string diadocAuthTokenLogin, string uacBoxId, Document document) { var file = _diadocApi.GenerateDocumentZip(diadocAuthTokenLogin, uacBoxId, document.MessageId.ToString(), document.EntityId.ToString(), true); while (file.RetryAfter > 0) { System.Threading.Thread.Sleep(file.RetryAfter * 1000); // file = _diadocApi.GeneratePrintForm(diadocAuthTokenLogin, uacBoxId, item.MessageId.ToString(), item.EntityId.ToString()); file = _diadocApi.GenerateDocumentZip(diadocAuthTokenLogin, uacBoxId, document.MessageId.ToString(), document.EntityId.ToString(), true); } var fileStream = _diadocApi.GetFileFromShelf(diadocAuthTokenLogin, file.ZipFileNameOnShelf); return(fileStream); }
public IHttpActionResult LoadDocumentsList(Guid messageId, int?userId) { var _diadocApi = new Diadoc.Api.DiadocApi(DiadocConstants.DiadocClientId, DiadocConstants.DiadocApiUrl, new Diadoc.Api.Cryptography.WinApiCrypt()); var diadocAuthTokenLogin = _diadocApi.Authenticate(DiadocConstants.DiadocLogin, DiadocConstants.DiadocPassword); try { using (var db = new cis(User.Identity.Name, userId)) { var uacBoxId = db.GetDiadocBoxId(Constant.OwnerId); var parentDocCard = Tools.CopyEntity(db.DocCards.FirstOrDefault(m => db.Documents.Any(m2 => m2.MessageId == messageId && m2.DocCardId == m.Id) && m.ParentDocCardId == null)); foreach (var item in db.Documents.Where(m => m.MessageId == messageId && m.DocCardId == null).ToList()) { byte[] fileStream = GetDiadocFileStream(_diadocApi, diadocAuthTokenLogin, uacBoxId, item); string fileName = db.GetDiadocFileName(item) + ".zip"; db.DocIntegrationInsertNew(item, fileName, fileStream, parentDocCard.Id); } while (db.Documents.Any(m => m.MessageId == messageId && m.DocCardId == null)) { continue; } //var doclist = db.Documents.AsNoTracking().Where(m => m.MessageId == messageId && m.DocCardId != null && m.DocCardId != parentDocCard.Id); //foreach (var item in doclist) //{ // var docCard = db.DocCards.Find(item.DocCardId); // docCard.ParentDocCardId = parentDocCard.Id; // docCard.IsPacket = true; // if (!db.DocCardReferences.Any(dcr => dcr.ParentId == docCard.ParentDocCardId.Value && dcr.ChildId == docCard.Id)) // { // var dcr = new DocCardReference // { // ParentId = docCard.ParentDocCardId.Value, // ChildId = docCard.Id // }; // db.DocCardReferences.Add(dcr); // } //} //db.SaveChanges(); var list = db.Documents.Where(m => m.MessageId == messageId).AsNoTracking().AsQueryable(); return(Json <object>(GetDocCardResponceModel(db, list, string.Empty, string.Empty, 0, 15), JsonSettings.RuDateTimeFormat)); } } catch (Exception ex) { return(BadRequest(CISLibApp.Basic.Tools.BasicTools.GetErrorMessage(ex))); } }