private Document fillContent(Document doc, Realizacija_osiguranja ro, TextFrame addressFrame, Table table) { Osoba o = ro.Stavka_u_realizaciji.Where(s => s.Nosilac_Stavka_u_realiziciji == true).FirstOrDefault().Osoba; Paragraph paragraph = addressFrame.AddParagraph(); paragraph.AddText(o.Ime_Osoba + " " + o.Prezime_Osoba); paragraph.AddLineBreak(); paragraph.AddText(o.Adresa_Osoba); paragraph.AddLineBreak(); paragraph.AddText(o.E_mail_Osoba); Row row; for (int i = 0; i < ro.Stavka_u_realizaciji.Count; i++) { Stavka_u_realizaciji sur = ro.Stavka_u_realizaciji.ElementAt(i); row = table.AddRow(); row.TopPadding = 1.5; row.Cells[0].Shading.Color = new Color(242, 242, 242); row.Cells[2].Shading.Color = new Color(242, 242, 242); row.Cells[0].AddParagraph((i + 1).ToString()); if (sur.Osoba != null) { row.Cells[1].AddParagraph(sur.Osoba.Ime_Osoba + " " + sur.Osoba.Prezime_Osoba + ", " + sur.Osoba.Broj_pasosa_Osoba); } else { if (sur.Nekretnina != null) { row.Cells[1].AddParagraph("Nekretnina na adresi: " + sur.Nekretnina.Adresa_Nekretnina); } else { if (sur.Vozilo != null) { row.Cells[1].AddParagraph("Vozilo sa brojem šasije: " + sur.Vozilo.Broj_sasije_Vozilo); } } } row.Cells[2].AddParagraph(sur.Vrednost_Stavka_u_realizaciji.ToString()); } row = table.AddRow(); row.TopPadding = 1.5; row.Shading.Color = new Color(242, 242, 242); row.Cells[1].AddParagraph("Ukupna cena polise: " + ro.Ukupna_vrednost_Realizacija_osiguranja); return(doc); }
public async Task <IHttpActionResult> GetRealizacija_osiguranja(int id) { Realizacija_osiguranja realizacija_osiguranja = await db.Realizacija_osiguranja.FindAsync(id); if (realizacija_osiguranja == null) { return(NotFound()); } return(Ok(realizacija_osiguranja)); }
private Document createDocument(Realizacija_osiguranja ro) { Document retDoc = new Document(); retDoc.Info.Title = "Polisa broj " + ro.Id_Realizacija_osiguranja.ToString(); retDoc.Info.Subject = "Polisa sa pojedinačnim stavkama koje utiču na cenu."; retDoc.Info.Author = POLICY_NAME + ", " + ACCOUNT_EMAIL; TextFrame addressFrame = new TextFrame(); Table table = new Table(); retDoc = defineStyles(retDoc); retDoc = createPage(retDoc, addressFrame, table); retDoc = fillContent(retDoc, ro, addressFrame, table); return(retDoc); }
private Realizacija_osiguranja dataToRO(ProcessData processData, Data data) { //Filling in Realizacija_osiguranja DateTime uctDate = DateTime.UtcNow; Realizacija_osiguranja ro = new Realizacija_osiguranja(); ro.Id_PDV = 1;//Everyone thank Favid :D ro.Datum_Realizacija_osiguranja = uctDate; ro.Vrednost_Realizacija_osiguranja = (decimal)data.priceWithoutVAT; ro.Vrednost_PDV_Realizacija_osiguranja = (decimal)data.VAT; ro.Ukupna_vrednost_Realizacija_osiguranja = (decimal)data.totalPrice; ro.Datum_od = data.dateFrom; ro.Datum_do = data.dateTo; ro.Stavka_u_realizaciji = handleItems(ro, processData, data); return(ro); }
public DataForPreview(Realizacija_osiguranja ro, string pp_button) { this.ro = ro; this.pp_button = pp_button; }
private void ProcessVerificationResponse(string response, string paymentDetails) { // postoji i polje "payment_date", (svi podaci o uplatiocu(ime, prezime, adresa)) Dictionary <string, string> details = organizeDetails(paymentDetails); if (response.Equals("VERIFIED")) { if (!details.ContainsKey("receiver_email") || !details.ContainsKey("payment_status") || !details.ContainsKey("item_name") || !details.ContainsKey("item_number")) { return; // ukoliko nam nije dostupan neki od osnovnih podataka } if (!details["receiver_email"].Equals(ACCOUNT_EMAIL)) { return; // transakcija nije namenjena meni } if (!details["payment_status"].Equals("Completed")) { return; // nije prosla transakcija } if (!details["item_name"].Equals(POLICY_NAME)) { return; // nije placeno osiguranje vec nesto drugo } string policyIdStr = details["item_number"]; int policyId = Int32.Parse(policyIdStr); string currency = "", ammount = ""; if (details.ContainsKey("mc_currency")) { currency = details["mc_currency"]; } if (details.ContainsKey("mc_gross")) { ammount = details["mc_gross"]; } // upisati u bazu za odgovarajucu polisu da je placanje izvrseno // upisati u bazu za odgovarajucu polisu id transakcije // nadji datu polisu u bazi Realizacija_osiguranja ro = db.Realizacija_osiguranja.Where(r => r.Id_Realizacija_osiguranja == policyId).FirstOrDefault();//.Include(s => s.Stavka_u_realizaciji) if (ro != null) { // proveriti da li se valuta i placeni iznos poklapaju sa ocekivanim //if (ro.Ukupna_vrednost_Realizacija_osiguranja.Equals(Decimal.Parse(ammount))) Zakomentarisano zbog konverzije evro-dinar, nikada vise nece biti isto :D //{ if (!ro.Potvrdjena_Realizacija_osiguranja) { ro.Potvrdjena_Realizacija_osiguranja = true; ro.Broj_transakcije_Realizacija_osiguranja = details["txn_id"]; db.SaveChanges(); try { var sur = db2.Stavka_u_realizaciji.Where(s => s.Id_Realizacija_osiguranja == ro.Id_Realizacija_osiguranja).Where(s => s.Nosilac_Stavka_u_realiziciji == true).Include(s => s.Osoba).FirstOrDefault(); var osoba = db2.Osoba.Where(o => o.Id_Osigurani_entitet == sur.Id_Osigurana_osoba).FirstOrDefault(); if (osoba != null) { var mail_carr = osoba.E_mail_Osoba; //Kreiranje pdf-a //slanje mail-a PDFCreator creator = new PDFCreator(); var fullPath = System.Web.HttpContext.Current.Server.MapPath("../fonts/logo.png"); Document doc = creator.createDocument(ro, fullPath); PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(true); pdfRenderer.Document = doc; pdfRenderer.RenderDocument(); MemoryStream ms = new MemoryStream(); pdfRenderer.Save(ms, false); ms.Position = 0; NetworkCredential basicCredential = new NetworkCredential("*****@*****.**", "hasansakic"); MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); mail.From = new MailAddress("*****@*****.**"); mail.To.Add(mail_carr); mail.Subject = "Polisa osiguranja - Holiday Guard"; mail.Body = "Pozdrav, \n šaljemo vam vašu polisu jer ste naznačeni kao nosilac. Za sve informacije možete se obratiti na telefon 021/ 4540 021. \n Svako dobro, \n Vaš Holiday Guard!"; mail.Attachments.Add(new Attachment(ms, "polisa.pdf", "application/pdf")); SmtpServer.Port = 587; SmtpServer.Credentials = basicCredential; SmtpServer.EnableSsl = true; SmtpServer.Send(mail); ms.Close(); } } catch (Exception e) { Console.Write(e); // Log... Console.Write(e.InnerException); } } //} } } else { //upisati u redovan log //upisati u log potencijalnih opasnosti string email = "", status = ""; if (details.ContainsKey("payer_email")) { email = details["payer_email"]; } if (details.ContainsKey("payer_status")) { status = details["payer_status"]; // da li ima verifikovan nalog na paypal-u } } }
private void createPage(ref Document doc, Realizacija_osiguranja ro, ref TextFrame addressFrame, ref Table table, string path) { Section section = doc.AddSection(); // Put a logo in the header TODO ako stignes Image image = section.Headers.Primary.AddImage(path); image.Height = "2.5cm"; image.LockAspectRatio = true; image.RelativeVertical = RelativeVertical.Line; image.RelativeHorizontal = RelativeHorizontal.Margin; image.Top = ShapePosition.Top; image.Left = ShapePosition.Right; image.WrapFormat.Style = WrapStyle.Through; // Create footer Paragraph paragraph = section.Footers.Primary.AddParagraph(); paragraph.AddText(POLICY_NAME + " · " + "Park mira 2" + " · " + "Novi Sad"); paragraph.AddLineBreak(); paragraph.AddText("021/ 4540 - 021"); paragraph.Format.Font.Size = 13; paragraph.Format.Font.Bold = true; paragraph.Format.Alignment = ParagraphAlignment.Center; // Create the text frame for the address addressFrame = section.AddTextFrame(); addressFrame.Height = "3.0cm"; addressFrame.Width = "7.0cm"; addressFrame.Left = ShapePosition.Left; addressFrame.RelativeHorizontal = RelativeHorizontal.Margin; addressFrame.Top = "5.0cm"; addressFrame.RelativeVertical = RelativeVertical.Page; // Add the print date field paragraph = section.AddParagraph(); paragraph = section.AddParagraph(); paragraph.Format.SpaceBefore = "5cm"; paragraph.Style = "Reference"; paragraph.AddFormattedText("POLISA broj " + ro.Id_Realizacija_osiguranja, TextFormat.Bold); paragraph.AddTab(); paragraph.AddDateField("dd.MM.yyyy"); // Create the item table table = section.AddTable(); table.Style = "Table"; table.Borders.Color = new Color(81, 125, 192); table.Borders.Width = 0.25; table.Borders.Left.Width = 0.5; table.Borders.Right.Width = 0.5; table.Rows.LeftIndent = 0; // Before you can add a row, you must define the columns Column column = table.AddColumn("1.5cm");//broj stavke column.Format.Alignment = ParagraphAlignment.Center; column = table.AddColumn("11cm");//stavka - Ime, prezime, JMBG, broj pasosa column.Format.Alignment = ParagraphAlignment.Center; column = table.AddColumn("3.5cm");//cena column.Format.Alignment = ParagraphAlignment.Center; // Create the header of the table Row row = table.AddRow(); row.HeadingFormat = true; row.Format.Alignment = ParagraphAlignment.Center; row.Format.Font.Bold = true; row.Format.Font.Size = 12; row.Shading.Color = new Color(235, 240, 249); row.Cells[0].AddParagraph("Broj"); row.Cells[0].Format.Alignment = ParagraphAlignment.Center; row.Cells[0].VerticalAlignment = VerticalAlignment.Center; row.Cells[1].AddParagraph("Stavka"); row.Cells[1].Format.Alignment = ParagraphAlignment.Center; row.Cells[0].VerticalAlignment = VerticalAlignment.Center; row.Cells[2].AddParagraph("Cena"); row.Cells[2].Format.Alignment = ParagraphAlignment.Center; row.Cells[2].VerticalAlignment = VerticalAlignment.Center; table.SetEdge(0, 0, 3, 1, Edge.Box, BorderStyle.Single, 0.75, Color.Empty); }
private void fillContent(ref Document doc, Realizacija_osiguranja ro, ref TextFrame addressFrame, ref Table table) { SEP_EntitiesB db1 = new SEP_EntitiesB(); var sur1 = db1.Stavka_u_realizaciji.Where(s => s.Id_Realizacija_osiguranja == ro.Id_Realizacija_osiguranja).Where(s => s.Nosilac_Stavka_u_realiziciji == true).Include(s => s.Osoba).FirstOrDefault(); Osoba o = db1.Osoba.Where(os => os.Id_Osigurani_entitet == sur1.Id_Osigurana_osoba).FirstOrDefault(); Paragraph paragraph = addressFrame.AddParagraph(); paragraph.AddText("Nosilac: "); paragraph.AddLineBreak(); paragraph.AddText(o.Ime_Osoba + " " + o.Prezime_Osoba); paragraph.AddLineBreak(); paragraph.AddText(o.Adresa_Osoba); paragraph.AddLineBreak(); paragraph.AddText(o.E_mail_Osoba); var list_sur = db1.Stavka_u_realizaciji.Where(s => s.Id_Realizacija_osiguranja == ro.Id_Realizacija_osiguranja).Include(a => a.Osoba).Include(b => b.Nekretnina).Include(c => c.Nekretnina).ToList(); int index = 0; for (int i = 0; i < list_sur.Count; i++) { Stavka_u_realizaciji sur = list_sur.ElementAt(i); if (!(sur.Nosilac_Stavka_u_realiziciji == true && sur.Vrednost_Stavka_u_realizaciji == 0)) { Row row1 = table.AddRow(); row1.Format.Font.Size = 10; row1.TopPadding = 1.5; row1.Cells[0].Shading.Color = new Color(242, 242, 242); row1.Cells[2].Shading.Color = new Color(242, 242, 242); row1.Cells[0].AddParagraph((index + 1).ToString()); if (sur.Id_Osigurana_osoba != null) { Osoba o_temp = db1.Osoba.Where(os => os.Id_Osigurani_entitet == sur.Id_Osigurana_osoba).FirstOrDefault(); row1.Cells[1].AddParagraph(o_temp.Ime_Osoba + " " + o_temp.Prezime_Osoba + ", " + o_temp.Broj_pasosa_Osoba); } else { if (sur.Id_Osigurana_nekretnina != null) { Nekretnina n_temp = db1.Nekretnina.Where(os => os.Id_Osigurani_entitet == sur.Id_Osigurana_nekretnina).FirstOrDefault(); row1.Cells[1].AddParagraph("Nekretnina na adresi: " + n_temp.Adresa_Nekretnina); } else { if (sur.Id_Osigurano_vozilo != null) { Vozilo v_temp = db1.Vozilo.Where(os => os.Id_Osigurani_entitet == sur.Id_Osigurano_vozilo).FirstOrDefault(); row1.Cells[1].AddParagraph("Vozilo sa brojem šasije: " + v_temp.Broj_sasije_Vozilo); } } } row1.Cells[2].AddParagraph(sur.Vrednost_Stavka_u_realizaciji.ToString() + " RSD"); index++; } } Row row2 = table.AddRow(); row2.Format.Font.Size = 10; row2.Format.Font.Bold = true; row2.TopPadding = 1.5; row2.Shading.Color = new Color(242, 242, 242); row2.Cells[1].AddParagraph("Ukupna cena polise:"); row2.Cells[2].AddParagraph(ro.Ukupna_vrednost_Realizacija_osiguranja.ToString() + " RSD"); }
public async Task <IHttpActionResult> Post(ProcessData processData) { Data data = new Data(processData); HttpResponseMessage resp = await client.PostAsJsonAsync("https://sepruleapi.azurewebsites.net/policy", data); String json = ""; if (resp.IsSuccessStatusCode) { json = await resp.Content.ReadAsStringAsync(); } data = JsonConvert.DeserializeObject <Data>(json); Realizacija_osiguranja ro = dataToRO(processData, data); try { db.Realizacija_osiguranja.Add(ro); db.SaveChanges(); }catch (Exception e) { Console.Write(e); //Mozda ipak u neki log, hm? return(BadRequest()); } #region Debug /* * PDFCreator creator = new PDFCreator(); * * var fullPath = System.Web.HttpContext.Current.Server.MapPath("../fonts/logo.png"); * Document doc = creator.createDocument(ro, fullPath); * PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(true); * pdfRenderer.Document = doc; * pdfRenderer.RenderDocument(); * * * MemoryStream ms = new MemoryStream(); * pdfRenderer.Save(ms, false); * ms.Position = 0; * * * NetworkCredential basicCredential = new NetworkCredential("*****@*****.**", "hasansakic"); * MailMessage mail = new MailMessage(); * SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); * * mail.From = new MailAddress("*****@*****.**"); * mail.To.Add("*****@*****.**"); * mail.Subject = "Polisa osiguranja - Holiday Guard"; * mail.Body = "Pozdrav, \n šaljemo vam vašu polisu jer ste naznačeni kao nosilac. Za sve informacije možete se obratiti na telefon 021/ 4540 021. \n Svako dobro, \n Vaš Holiday Guard!"; * mail.Attachments.Add(new Attachment(ms, "polisa.pdf", "application/pdf")); * * * SmtpServer.Port = 587; * SmtpServer.Credentials = basicCredential; * SmtpServer.EnableSsl = true; * * * SmtpServer.Send(mail); * * ms.Close(); */ #endregion //Paypal button generation BMCreateButtonRequestType request = new BMCreateButtonRequestType(); request.ButtonType = ButtonTypeType.BUYNOW; request.ButtonCode = ButtonCodeType.ENCRYPTED; String policyId = ro.Id_Realizacija_osiguranja.ToString(); String price = ro.Ukupna_vrednost_Realizacija_osiguranja.ToString(); String converter = "https://globalcurrencies.xignite.com/xGlobalCurrencies.json/ConvertRealTimeValue?From=RSD&To=EUR&Amount=" + price + "&_token=" + key; HttpResponseMessage resp2 = await client.GetAsync(converter); String json2 = ""; if (resp2.IsSuccessStatusCode) { json2 = await resp2.Content.ReadAsStringAsync(); } Newtonsoft.Json.Linq.JObject o = Newtonsoft.Json.Linq.JObject.Parse(json2); String priceEur = (String)o["Result"]; int dot = priceEur.IndexOf('.'); if (dot != -1) { priceEur = priceEur.Substring(0, dot + 3); } List <string> buttonVars = new List <string>(); buttonVars.Add("return=" + RETURN_ADDRESS); buttonVars.Add("item_name=" + POLICY_NAME); buttonVars.Add("item_number=" + policyId); buttonVars.Add("amount=" + priceEur); buttonVars.Add("currency_code=" + "EUR");// Ne moze u dinarima. buttonVars.Add("business=" + ACCOUNT_EMAIL); request.ButtonVar = buttonVars; // Invoke the API BMCreateButtonReq wrapper = new BMCreateButtonReq(); wrapper.BMCreateButtonRequest = request; Dictionary <string, string> configurationMap = SEP_Osiguranje.PayPalData.PayPalConfiguration.GetAcctAndConfig(); PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService(configurationMap); BMCreateButtonResponseType response = service.BMCreateButton(wrapper); DataForPreview dfp = new DataForPreview(ro, response.Website); return(Ok(dfp)); }
private List <Stavka_u_realizaciji> handleItems(Realizacija_osiguranja ro, ProcessData processData, Data data) { List <Stavka_u_realizaciji> retList = new List <Stavka_u_realizaciji>(); //Handling Items - customers for (int i = 0; i < processData.customers.Count; i++) { Stavka_u_realizaciji sur = new Stavka_u_realizaciji(); //Handle Osoba entity var customer = processData.customers.ElementAt(i); Osoba existing = db.Osoba.Where(o => o.JMBG_Osoba == customer.osoba.JMBG_Osoba).FirstOrDefault(); if (existing != null) { checkCustomersData(existing, customer.osoba); sur.Id_Osigurana_osoba = existing.Id_Osigurani_entitet; } else { sur.Osoba = customer.osoba; } sur.Nosilac_Stavka_u_realiziciji = customer.carrier; if (customer.insured) { InsuredPerson personWithRisks = data.insuredPeople.Where(ip => ip.id == i).FirstOrDefault(); sur.Vrednost_Stavka_u_realizaciji = (decimal)personWithRisks.price; //Rizik_za_osigurani_entitet //Ako bude vremena, resite da se neki rizici vezuju direkt za Realizaciju, a ne za stavke. sur.Rizik_za_osigurani_entitet = handleAppliedRisksForIP(data, personWithRisks); } retList.Add(sur); } //Handle items - vehicle if (data.carInsured) { Stavka_u_realizaciji sur = new Stavka_u_realizaciji(); sur.Vozilo = processData.vehicleData.vehicle; sur.Rizik_za_osigurani_entitet = handleAppliedRisksForIV(data.insuredCar); sur.Vrednost_Stavka_u_realizaciji = (decimal)data.insuredCar.price; retList.Add(sur); } if (data.realEstateInsured) { Stavka_u_realizaciji sur = new Stavka_u_realizaciji(); sur.Nekretnina = processData.objectData.obj; sur.Rizik_za_osigurani_entitet = handleAppliedRisksForIRE(data.insuredRealEstate); sur.Vrednost_Stavka_u_realizaciji = (decimal)data.insuredRealEstate.price; retList.Add(sur); } return(retList); }