//public OperationResult SendFax(MiscFaxInformation miscFaxInformation, string permanentFaxPath, string from, string notes) public OperationResult SendFax( FaxingInformation miscFaxInformation, string permanentFaxPath, string from, string notes) { OperationResult operationResult = new Models.OperationResult(); string now = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString(); using (IDbConnection db = new SqlConnection(ConfigurationValues.WaldenFaxConnection)) { try { const string query = "INSERT INTO [FaxesSendServer](" + "[AccountID]" + ",[UserID]" + ",[FaxName]" + ",[FaxPath]" + ",[FaxNumber]" + ",[RecipientName]" + ",[Notes]" + ",[PageCount]" + ",[FaxSent]" + ",[InUse]" + ",[ToTif]" + ",[CallWait]" + ",[TimesCalled]" + ",[Status]" + ",[ShowFax]" + ",[CreateTime]" + ",[CompletionTime]" + ",[DateStamp])" + " VALUES(" + "@AccountID" + ",@UserID" + ",@FaxName" + ",@FaxPath" + ",@FaxNumber" + ",@RecipientName" + ",@Notes" + ",@PageCount" + ",@FaxSent" + ",@InUse" + ",@ToTif" + ",@CallWait" + ",@TimesCalled" + ",@Status" + ",@ShowFax" + ",@CreateTime" + ",@CompletionTime" + ",@DateStamp)"; int rowsAffectd = db.Execute(query, new { @AccountID = 1001, @UserID = Utility.GetUserName(), @FaxName = miscFaxInformation.Name, @FaxPath = permanentFaxPath, @FaxNumber = miscFaxInformation.FaxNumber, @RecipientName = from, @Notes = notes, @PageCount = miscFaxInformation.PageCount, @FaxSent = "Y", @InUse = "N", @ToTif = "Y", @CallWait = 0, @TimesCalled = 0, @Status = "New Fax Entry", @ShowFax = "Y", @CreateTime = now, @CompletionTime = string.Empty, @DateStamp = now }); int sendFaxId = GetSendFaxID(); int r = 5; operationResult.Success = true; operationResult.AddMessage(sendFaxId.ToString()); return operationResult; } catch (Exception er) { operationResult.Success = false; operationResult.AddMessage(er.ToString()); return operationResult; } } }
//public MiscFaxInformation CreateFax(string faxDocumentList, string _faxTo, string notes, // string from, string cover) public FaxingInformation CreateFax(FaxingInformation faxingInformation) { //MiscFaxInformation miscFaxInformation = new MiscFaxInformation(); string newPDF = string.Empty; string temporaryPath = string.Empty; faxingInformation.NameFromDateTimeString = Utility.GetFileNameFromDateTimeString() + ".pdf"; //var repository = new WaldenCompleteFaxWeb.Repository.FaxToInformation(); var repository = new WaldenFax.API.Models.FaxToInformation(); FaxData faxData = new FaxData(); string[] FirstFaxTo = faxingInformation.FaxTo.Split('~'); List<FaxToInformation> data = new List<FaxToInformation>(); if (faxingInformation.FaxTo.Substring(0,1) == "G") { data = faxData.GetFaxToInformationGreenway(FirstFaxTo[0]); } else { data = faxData.GetFaxToInformation(FirstFaxTo[0]); } try { faxingInformation.FaxTo = data[0].Name; } catch { } try { StringCollection listOfPSFiles = new StringCollection(); string[] words = faxingInformation.DocumentList.Split('~'); for (int i = 0; i < words.Length; i++) { if (words[i].Length > 0) { listOfPSFiles.Add(words[i]); } } MemoryStream newPDFStream = CreatePreviewFax(listOfPSFiles); temporaryPath = ConfigurationValues.TemporaryFaxPath + Utility.GetUserName() + "\\" + faxingInformation.NameFromDateTimeString; FileStream newPDFStreamFile = new FileStream(temporaryPath, FileMode.Create); newPDFStream.WriteTo(newPDFStreamFile); newPDFStream.Close(); newPDFStreamFile.Close(); MemoryStream coverSheet = CreateCoverSheetV2(faxingInformation.FaxTo, data[0].FaxNumber, Walden.Medical.Library.Pdf.GetPDFPageCount(newPDFStreamFile.Name), faxingInformation.Notes, faxingInformation.From, int.Parse(faxingInformation.Cover)); //miscFaxInformation.PageCount = Walden.Medical.Library.Pdf.GetPDFPageCount(_newPDFStreamFile.Name); //miscFaxInformation.FaxNumber = UpdatedFaxNumber(data[0].FaxNumber); //miscFaxInformation.Name = faxTo; faxingInformation.PageCount = Walden.Medical.Library.Pdf.GetPDFPageCount(newPDFStreamFile.Name); faxingInformation.FaxNumber = UpdatedFaxNumber(data[0].FaxNumber); faxingInformation.Name = faxingInformation.FaxTo; FileStream presStream = new FileStream(ConfigurationValues.TemporaryFaxPath + Utility.GetUserName() + "\\cover.pdf", FileMode.Create); coverSheet.WriteTo(presStream); coverSheet.Close(); presStream.Close(); if (faxingInformation.CoverSheetOnly == "T") { File.Copy(ConfigurationValues.TemporaryFaxPath + Utility.GetUserName() + "\\cover.pdf", newPDFStreamFile.Name, true); File.Delete(ConfigurationValues.TemporaryFaxPath + Utility.GetUserName() + "\\cover.pdf"); } else { Walden.Medical.Library.Pdf.MergeTwoDocuments(ConfigurationValues.TemporaryFaxPath + Utility.GetUserName() + "\\cover.pdf", newPDFStreamFile.Name); } faxingInformation.FaxPath = newPDFStreamFile.Name; //miscFaxInformation.FaxPath = _newPDFStreamFile.Name; return faxingInformation; } catch (Exception er) { return faxingInformation; } }
// POST: api/SendFax public IHttpActionResult Post([FromBody] Fax faxValues) { OperationResult createFaxRecordOperationResult = new Models.OperationResult(); OperationResult sendFaxToMultiTechOperationResult = new Models.OperationResult(); FaxData faxData = new FaxData(); string documentList = faxValues.DocumentList; string faxTo = faxValues.FaxTo; string notes = faxValues.Notes; string cover = faxValues.Cover; string from = faxValues.From; string faxPath = string.Empty; string[] faxes = faxTo.Split('~'); string permanentFaxPath = string.Empty; Misc misc = new Misc(); try { for (int i = 0; i < faxes.Length - 1; i++) { FaxingInformation faxingInformatonInitial = new FaxingInformation(); faxingInformatonInitial.DocumentList = documentList; faxingInformatonInitial.FaxTo = faxes[i]; faxingInformatonInitial.Notes = notes; faxingInformatonInitial.From = from; faxingInformatonInitial.Cover = cover; faxingInformatonInitial.CoverSheetOnly = faxValues.CoverOnly; FaxingInformation faxingInformatonComplete = misc.CreateFax(faxingInformatonInitial); permanentFaxPath = Walden.CompleteFax.Library.Database.PernamentFaxPath + Utility.GetUserName() + "\\" + faxingInformatonComplete.NameFromDateTimeString; System.IO.File.Copy(ConfigurationValues.TemporaryFaxPath + Utility.GetUserName() + "\\" + faxingInformatonComplete.NameFromDateTimeString, ConfigurationValues.PernamentFaxPath + faxingInformatonComplete.NameFromDateTimeString, true); string now = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString(); createFaxRecordOperationResult = faxData.SendFax(faxingInformatonComplete, ConfigurationValues.PernamentFaxPath + faxingInformatonComplete.NameFromDateTimeString, from, notes); if (createFaxRecordOperationResult.Success) { sendFaxToMultiTechOperationResult = sendFaxMultitech.SendTheFax(faxingInformatonComplete.Name, faxingInformatonComplete.FaxPath, from, faxingInformatonComplete.FaxNumber, createFaxRecordOperationResult.MessageList[0], ConfigurationValues.ApplicationPath); if (sendFaxToMultiTechOperationResult.Success) { System.IO.File.Delete(ConfigurationValues.TemporaryFaxPath + Utility.GetUserName() + "\\" + faxingInformatonComplete.NameFromDateTimeString); } else { faxData.UpdateFaxRecord(createFaxRecordOperationResult.MessageList[0]); } } else { return BadRequest(createFaxRecordOperationResult.ErrorMessage); } } } catch (Exception er) { return InternalServerError(er); } string[] faxesToDelete = documentList.Split('~'); for (int i = 0; i < faxesToDelete.Length - 1; i++) { System.IO.File.Delete(ConfigurationValues.TemporaryFaxPath + Utility.GetUserName() + "\\" + faxesToDelete[i]); } return Ok(); }