コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
 public DataForPreview(Realizacija_osiguranja ro, string pp_button)
 {
     this.ro        = ro;
     this.pp_button = pp_button;
 }
コード例 #6
0
        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
                }
            }
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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");
        }
コード例 #9
0
        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));
        }
コード例 #10
0
        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);
        }