Ejemplo n.º 1
0
        public ActionResult Create(Project project)
        {
            if (ModelState.IsValid)
            {
                using (ApplicationDbContext context = new ApplicationDbContext())
                {
                    var user = UserManager.FindById(User.Identity.GetUserId());

                    if (context.Projects.Where(p => p.OwnerID == user.OrgID && p.Name == project.Name.Trim() && p.Starts == project.Starts && p.Ends == project.Ends).Any())
                    {
                        ModelState.AddModelError("", ProjectResources.AlreadyExistingProjectError);
                    }
                    else
                    {
                        project.OwnerID = user.OrgID;
                        var rootFolder = new Folder();
                        rootFolder.Name = project.Name.Trim();
                        context.Folders.Add(rootFolder);
                        TicketSetting ticketSetting = new TicketSetting();
                        ticketSetting.MaxTicketsPerEmail = 8;
                        project.TicketSetting            = ticketSetting;

                        context.SaveChanges();

                        project.RootFolder = rootFolder;
                        context.Projects.Add(project);
                        context.SaveChanges();

                        var messageModel = new MessageViewModel();
                        messageModel.RedirectAction        = "Home";
                        messageModel.Redirection           = true;
                        messageModel.RedirectController    = "Org";
                        messageModel.RedirectionButtonText = GeneralResources.Ok;
                        messageModel.Header = ProjectResources.ProjectCreated;
                        messageModel.Body   = ProjectResources.ProjectCreatedBody;
                        return(RedirectToAction("Message", "Home", messageModel));
                    }
                }
            }

            return(View(project));
        }
Ejemplo n.º 2
0
        public void Seed(ApplicationDbContext _context)
        {
            this.context = _context;

            try
            {
                var org1 = new Org()
                {
                    Name = "SDBS", VariableSymbolCounter = 1
                };

                context.Orgs.AddOrUpdate(org1);

                var    passwordHash = new PasswordHasher();
                string password     = passwordHash.HashPassword("testtest");

                var user1 = new ApplicationUser {
                    Email = "*****@*****.**", OrgID = org1.OrgID, EmailConfirmed = true, UserName = "******", PasswordHash = password, SecurityStamp = Guid.NewGuid().ToString()
                };

                context.Users.AddOrUpdate(user1);

                string password2 = passwordHash.HashPassword("testtest");

                var user2 = new ApplicationUser {
                    Email = "robin@localhost:44301", OrgID = org1.OrgID, EmailConfirmed = true, UserName = "******", PasswordHash = password2, SecurityStamp = Guid.NewGuid().ToString()
                };

                context.Users.AddOrUpdate(user2);

                string password3 = passwordHash.HashPassword("testtest");

                var user3 = new ApplicationUser {
                    Email = "freeze@localhost:44301", OrgID = org1.OrgID, EmailConfirmed = true, UserName = "******", PasswordHash = password3, SecurityStamp = Guid.NewGuid().ToString()
                };

                context.Users.AddOrUpdate(user3);

                var rootFolder1 = new Folder()
                {
                    Name = "Psy High15"
                };

                context.Folders.AddOrUpdate(rootFolder1);

                var ticketsSettings = new TicketSetting()
                {
                    LocationCZ = "Praha 5", LocationEN = "Prague 5", MaxTicketsPerEmail = 8, NamedTickets = false, ProjectViewNameCZ = "Fesťák", ProjectViewNameEN = "The Festival", StartsCZ = "20.listopad", StartsEN = "5th July"
                };

                context.TicketsSettings.AddOrUpdate(ticketsSettings);

                var project = new Project()
                {
                    RootFolder = rootFolder1, Name = "Psy High15", Starts = DateTime.Now.AddDays(-90), Ends = DateTime.Now.AddDays(20), Owner = org1, TicketSetting = ticketsSettings
                };

                context.Projects.AddOrUpdate(project);


                List <Task> tasks = new List <Task>();

                var task1 = new Task()
                {
                    Creator = user1, Org = org1, Deadline = DateTime.Now.AddDays(5), Name = "Prodlužky", Parent = rootFolder1, Content = "<h1>Úkol pro prodlužovací kabely</h1> </br> <p> Toto je hlavní úkol pro prodlužky </p>"
                };
                var task2 = new Task()
                {
                    Creator = user1, Org = org1, Deadline = DateTime.Now.AddDays(6), Name = "Nářadí", Parent = rootFolder1, Content = "<h1>Úkol pro stavební vybavení</h1> </br> <p> Toto je hlavní úkol pro nářadí </p>"
                };
                var task3 = new Task()
                {
                    Creator = user1, Org = org1, Deadline = DateTime.Now.AddDays(7), Name = "Světla", Parent = rootFolder1, Content = "<h1>Úkol pro světelnou techniku</h1> </br> <p> Toto je hlavní úkol pro světla </p>"
                };

                context.Tasks.AddOrUpdate(task1);
                context.Tasks.AddOrUpdate(task2);
                context.Tasks.AddOrUpdate(task3);

                tasks.Add(task1);
                tasks.Add(task2);
                tasks.Add(task3);

                //Random rnd = new Random();

                //DateTime startDateTime = DateTime.Now.AddDays(-80);

                //for (int i = 0; i < 100; i++)
                //{
                //  startDateTime = startDateTime.AddHours(1);
                //  CreateTaskComments(user1, tasks[i % 3], rnd.Next(2, 10), startDateTime);
                //  startDateTime = startDateTime.AddHours(1);
                //  CreateTaskComments(user2, tasks[i % 3], rnd.Next(2, 10), startDateTime);
                //  startDateTime = startDateTime.AddHours(1);
                //  CreateTaskComments(user3, tasks[i % 3], rnd.Next(2, 10), startDateTime);
                //}

                var folder2 = new Folder()
                {
                    Name = "Stavby", Parent = rootFolder1
                };
                context.Folders.AddOrUpdate(folder2);

                var task4 = new Task()
                {
                    Creator = user2, Org = org1, Deadline = DateTime.Now.AddDays(5), Name = "Bar", Parent = folder2
                };
                var task5 = new Task()
                {
                    Creator = user3, Org = org1, Deadline = DateTime.Now.AddDays(6), Name = "Stage", Parent = folder2
                };
                var task6 = new Task()
                {
                    Creator = user3, Org = org1, Deadline = DateTime.Now.AddDays(7), Name = "Přednášky", Parent = folder2
                };

                context.Tasks.AddOrUpdate(task4);
                context.Tasks.AddOrUpdate(task5);
                context.Tasks.AddOrUpdate(task6);

                TicketCategory ticketCategory1 = new TicketCategory()
                {
                    Capacity = 100, Price = 110, Project = project, SoldFrom = new DateTime(2015, 10, 1), SoldTo = new DateTime(2015, 12, 31), HeaderCZ = "Stání", HeaderEN = "Sitting"
                };
                TicketCategory ticketCategory2 = new TicketCategory()
                {
                    Capacity = 200, Price = 220, Project = project, SoldFrom = new DateTime(2015, 10, 1), SoldTo = new DateTime(2015, 12, 31), HeaderCZ = "VIP sezení", HeaderEN = "VIP sitting"
                };
                context.TicketCategories.AddOrUpdate(ticketCategory1);
                context.TicketCategories.AddOrUpdate(ticketCategory2);

                ////Order:1
                //TicketOrder ticketOrder1 = new TicketOrder() { Created = new DateTime(2015, 10, 1), Email = "customer1@localhost:44301", Paid = new DateTime(2015, 10, 2), TotalPrice = 66.60, VariableSymbol = 666777, OrgID = org1.OrgID };
                //context.TicketOrders.AddOrUpdate(ticketOrder1);
                ////Order:1, Category:1
                //TicketCategoryOrder ticketCategoryOrder1 = new TicketCategoryOrder() { Count = 2, Paid = true, TicketCategory = ticketCategory1, TicketOrder = ticketOrder1 };
                //context.TicketCategoryOrders.AddOrUpdate(ticketCategoryOrder1);
                //////Order:1, Category:1, TicketItems
                ////TicketItem ticketItem111 = new TicketItem() { TicketCategoryOrder = ticketCategoryOrder1, Code = "ticketItem111" };
                ////TicketItem ticketItem112 = new TicketItem() { TicketCategoryOrder = ticketCategoryOrder1, Code = "ticketItem112" };
                ////context.TicketItems.AddOrUpdate(ticketItem111);
                ////context.TicketItems.AddOrUpdate(ticketItem112);
                ////Order:1, Category:2
                //TicketCategoryOrder ticketCategoryOrder2 = new TicketCategoryOrder() { Count = 1, Paid = true, TicketCategory = ticketCategory2, TicketOrder = ticketOrder1 };
                //context.TicketCategoryOrders.AddOrUpdate(ticketCategoryOrder2);
                //////Order:1, Category:1, TicketItems
                ////TicketItem ticketItem121 = new TicketItem() { TicketCategoryOrder = ticketCategoryOrder2, Code = "ticketItem121" };
                ////context.TicketItems.AddOrUpdate(ticketItem121);

                ////Order:2
                //TicketOrder ticketOrder2 = new TicketOrder() { Created = new DateTime(2015, 10, 5), Email = "customer2@localhost:44301", Paid = new DateTime(2015, 10, 6), TotalPrice = 42.00, VariableSymbol = 420420, OrgID = org1.OrgID };
                //context.TicketOrders.AddOrUpdate(ticketOrder2);
                ////Order:2, Category:1
                //TicketCategoryOrder ticketCategoryOrder3 = new TicketCategoryOrder() { Count = 2, Paid = true, TicketCategory = ticketCategory1, TicketOrder = ticketOrder2 };
                //context.TicketCategoryOrders.AddOrUpdate(ticketCategoryOrder3);
                //////Order:2, Category:1, TicketItems
                ////TicketItem ticketItem211 = new TicketItem() { TicketCategoryOrder = ticketCategoryOrder3, Code = "ticketItem211" };
                ////TicketItem ticketItem212 = new TicketItem() { TicketCategoryOrder = ticketCategoryOrder3, Code = "ticketItem212" };
                ////context.TicketItems.AddOrUpdate(ticketItem211);
                ////context.TicketItems.AddOrUpdate(ticketItem212);

                ////Order:2, Category:2
                //TicketCategoryOrder ticketCategoryOrder4 = new TicketCategoryOrder() { Count = 1, Paid = true, TicketCategory = ticketCategory2, TicketOrder = ticketOrder2 };
                //context.TicketCategoryOrders.AddOrUpdate(ticketCategoryOrder4);
                //////Order:2, Category:1, TicketItems
                ////TicketItem ticketItem221 = new TicketItem() { TicketCategoryOrder = ticketCategoryOrder4, Code = "ticketItem221" };
                ////context.TicketItems.AddOrUpdate(ticketItem221);

                FioBankProxy fioBankProxy = new FioBankProxy()
                {
                    AccountNumber = 2200908004,
                    Token         = "kuNbfeSqViKWPhAn4wW1WzXvnOpKhJYWoxDxtrLYwA97baSuQlJygxBIQg0bjk59",
                    LastUpdate    = DateTime.Now
                };

                context.FioBankProxies.AddOrUpdate(fioBankProxy);

                BankProxy bankProxy = new BankProxy()
                {
                    BankProxyType = EBankProxyType.FIO,
                    FioBankProxy  = fioBankProxy
                };

                context.BankProxies.AddOrUpdate(bankProxy);

                project.BankProxy = bankProxy;

                project.TicketsURL = "http://*****:*****@gmail.com", OrgID = org2.OrgID, EmailConfirmed = true, UserName = "******", PasswordHash = password4, SecurityStamp = Guid.NewGuid().ToString()
                };

                context.Users.AddOrUpdate(user4);

                var rootFolder2 = new Folder()
                {
                    Name = "Psy High2"
                };

                context.Folders.AddOrUpdate(rootFolder2);

                var project2 = new Project()
                {
                    RootFolder = rootFolder2, Name = "Psy High2", Starts = DateTime.Now.AddDays(-90), Ends = DateTime.Now.AddDays(20), Owner = org2
                };

                context.Projects.AddOrUpdate(project2);

                TicketCategory ticketCategory3 = new TicketCategory()
                {
                    Capacity = 100, Price = 110, Project = project2, SoldFrom = new DateTime(2015, 10, 1), SoldTo = new DateTime(2015, 12, 31), HeaderCZ = "Stání", HeaderEN = "Sitting"
                };
                TicketCategory ticketCategory4 = new TicketCategory()
                {
                    Capacity = 200, Price = 220, Project = project2, SoldFrom = new DateTime(2015, 10, 1), SoldTo = new DateTime(2015, 12, 31), HeaderCZ = "VIP sezení", HeaderEN = "VIP sitting"
                };
                context.TicketCategories.AddOrUpdate(ticketCategory3);
                context.TicketCategories.AddOrUpdate(ticketCategory4);

                ////Order:2
                //TicketOrder ticketOrder3 = new TicketOrder() { Created = new DateTime(2015, 10, 5), Email = "customer2@localhost:44301", Paid = new DateTime(2015, 10, 6), TotalPrice = 42.00, VariableSymbol = 420420, OrgID = org2.OrgID };
                //context.TicketOrders.AddOrUpdate(ticketOrder3);
                ////Order:2, Category:1
                //TicketCategoryOrder ticketCategoryOrder5 = new TicketCategoryOrder() { Count = 2, Paid = true, TicketCategory = ticketCategory3, TicketOrder = ticketOrder3 };
                //context.TicketCategoryOrders.AddOrUpdate(ticketCategoryOrder5);

                FioBankProxy fioBankProxy2 = new FioBankProxy()
                {
                    AccountNumber = 2200908004,
                    Token         = "kuNbfeSqViKWPhAn4wW1WzXvnOpKhJYWoxDxtrLYwA97baSuQlJygxBIQg0bjk59",
                    LastUpdate    = DateTime.Now
                };

                context.FioBankProxies.AddOrUpdate(fioBankProxy2);

                BankProxy bankProxy2 = new BankProxy()
                {
                    BankProxyType = EBankProxyType.FIO,
                    FioBankProxy  = fioBankProxy2
                };

                context.BankProxies.AddOrUpdate(bankProxy2);

                project2.BankProxy = bankProxy2;

                project2.TicketsURL = "http://localhost:44301/vstupenky/2/Psy-High2";

                //ticketCategory1.Ordered = 4;
                //ticketCategory2.Ordered = 2;
                //org1.VariableSymbolCounter = 2;
                context.SaveChanges();
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("_____Pruser");
                Console.WriteLine("_____Pruser");
                Console.WriteLine(e.Message);
                throw;
            }
        }
 public GetMaydayTicketService(string starturl, TicketSetting setting)
 {
     this._startUrl = starturl;
     this._setting  = setting;
 }
Ejemplo n.º 4
0
        public MvcMailMessage SendTicketOrderConfirmation(Models.TicketsViewModel.TicketItemConfirmationViewModel model, List <TicketPDFGenerator.TicketToGenerateWrapper> ticketsToExport, TicketSetting settings)
        {
            ViewData = new ViewDataDictionary(model);
            TicketPDFGenerator.GetPDFTicket(ticketsToExport, settings);

            string subject = "Vstupenky: " + model.ProjectName;

            var emailMsg = Populate(x =>
            {
                x.Subject  = subject;
                x.ViewName = "TicketOrderConfirmation";
                x.To.Add(model.Email);
                foreach (var ticketToExport in ticketsToExport)
                {
                    MemoryStream memoryStream = new MemoryStream(ticketToExport.PDFTicket);
                    Attachment attachement    = new Attachment(memoryStream, System.Net.Mime.MediaTypeNames.Application.Pdf);
                    attachement.ContentDisposition.FileName = string.Format("{0} | Vstupenka: {1}.pdf", ticketToExport.ProjectName, ticketToExport.Code);
                    x.Attachments.Add(attachement);
                }
            });

            return(emailMsg);
        }
Ejemplo n.º 5
0
        public static void GetPDFTicket(List <TicketToGenerateWrapper> ticketsToExport, TicketSetting settings)
        {
            foreach (var ticketToExport in ticketsToExport)
            {
                using (MemoryStream memoryStream = new MemoryStream())
                {
                    PdfDocument document = new PdfDocument();
                    document.Info.Title = "";
                    PdfPage page = document.AddPage();

                    // Get an XGraphics object for drawing
                    XGraphics gfx = XGraphics.FromPdfPage(page);

                    //Logo

                    double logoHeigh;
                    double logoWidth;

                    if (settings.Logo != null)
                    {
                        using (var ms = new MemoryStream(settings.Logo))
                        {
                            using (Image logoImg = Image.FromStream(ms))
                            {
                                XImage logo = XImage.FromGdiPlusImage(logoImg);
                                gfx.DrawImage(logo, LEFT_BOARDER, 0);

                                logoHeigh = logoImg.Height;
                                logoWidth = logoImg.Width;
                            }
                        }
                    }
                    else
                    {
                        logoHeigh = 0;
                        logoWidth = 600;
                    }

                    //QR
                    WebClient client = new WebClient();
                    client.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1";
                    client.Headers["Accept"]     = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
                    string url           = string.Format("http://chart.googleapis.com/chart?cht=qr&chs=184x184&chl={0}&choe=UTF-8&chld=L", ticketToExport.QRCode);
                    byte[] data          = client.DownloadData(url);
                    var    memoryStream2 = new MemoryStream(data);
                    Image  qrImg         = new Bitmap(memoryStream2);
                    memoryStream2.Close();
                    XImage qr = XImage.FromGdiPlusImage(qrImg);
                    gfx.DrawImage(qr, LEFT_BOARDER, logoHeigh * PIXEL_CONVERT);

                    double          rowPointer = logoHeigh * PIXEL_CONVERT + 20;
                    XPdfFontOptions options    = new XPdfFontOptions(PdfFontEncoding.Unicode, PdfFontEmbedding.Always);
                    // Create a font
                    XFont font = new XFont("Verdana", 10, XFontStyle.Bold, options);
                    // Draw the text
                    if (!string.IsNullOrEmpty(ticketToExport.StartDate))
                    {
                        gfx.DrawString(ticketToExport.StartDate, font, XBrushes.Black, new XRect(LEFT_BOARDER + QR_SIZE, rowPointer, logoWidth - QR_SIZE, LINE_HEIGHT), XStringFormats.TopLeft);
                        rowPointer += LINE_HEIGHT;
                    }

                    if (!string.IsNullOrEmpty(ticketToExport.Location))
                    {
                        gfx.DrawString(ticketToExport.Location, font, XBrushes.Black, new XRect(LEFT_BOARDER + QR_SIZE, rowPointer, logoWidth - QR_SIZE, LINE_HEIGHT), XStringFormats.TopLeft);
                        rowPointer += LINE_HEIGHT;
                    }

                    gfx.DrawString(ticketToExport.CategoryName, font, XBrushes.Black, new XRect(LEFT_BOARDER + QR_SIZE, logoHeigh * PIXEL_CONVERT + 20 + (LINE_HEIGHT * 2), logoWidth - QR_SIZE, LINE_HEIGHT), XStringFormats.TopLeft);
                    rowPointer += LINE_HEIGHT * 2;

                    font = new XFont("Verdana", 10, XFontStyle.Regular, options);

                    if (!string.IsNullOrEmpty(ticketToExport.VisitorName))
                    {
                        gfx.DrawString(ticketToExport.VisitorName, font, XBrushes.Black, new XRect(LEFT_BOARDER + QR_SIZE, rowPointer, logoWidth - QR_SIZE, LINE_HEIGHT), XStringFormats.TopLeft);
                        rowPointer += LINE_HEIGHT;
                    }

                    gfx.DrawString(ticketToExport.VisitorEmail, font, XBrushes.Black, new XRect(LEFT_BOARDER + QR_SIZE, rowPointer, logoWidth - QR_SIZE, LINE_HEIGHT), XStringFormats.TopLeft);

                    rowPointer += LINE_HEIGHT * 2.5;

                    gfx.DrawString(ticketToExport.Code, font, XBrushes.Black, new XRect(LEFT_BOARDER + QR_SIZE, logoHeigh * PIXEL_CONVERT + QR_SIZE - LINE_HEIGHT - 20, logoWidth - QR_SIZE, LINE_HEIGHT), XStringFormats.TopLeft);
                    rowPointer += LINE_HEIGHT;

                    XTextFormatter tf = new XTextFormatter(gfx);
                    tf.Alignment = XParagraphAlignment.Left;

                    if (!string.IsNullOrEmpty(ticketToExport.Note))
                    {
                        tf.DrawString(ticketToExport.Note, font, XBrushes.Black, new XRect(LEFT_BOARDER, rowPointer + 10, 500, 600), XStringFormats.TopLeft);
                        rowPointer += LINE_HEIGHT;
                    }

                    document.Save(memoryStream);
                    ticketToExport.PDFTicket = memoryStream.ToArray();
                }
            }
        }
Ejemplo n.º 6
0
        public static byte[] GetZippedPdfTickets(List <TicketToGenerateWrapper> ticketsToExport, TicketSetting settings)
        {
            GetPDFTicket(ticketsToExport, settings);
            using (MemoryStream outStream = new MemoryStream())
            {
                using (ZipArchive archive = new ZipArchive(outStream, ZipArchiveMode.Create, false))
                {
                    foreach (var ticket in ticketsToExport)
                    {
                        ZipArchiveEntry ticketEntry = archive.CreateEntry(ticket.Code + ".pdf", CompressionLevel.Fastest);

                        //Get the stream of the attachment
                        using (var originalFileStream = new MemoryStream(ticket.PDFTicket))
                        {
                            using (var zipEntryStream = ticketEntry.Open())
                            {
                                //Copy the attachment stream to the zip entry stream
                                originalFileStream.CopyTo(zipEntryStream);
                            }
                        }
                    }
                }
                return(outStream.ToArray());
            }
        }