示例#1
0
        public List <Models.VerificationMessage> ApplyRule(Models.Package package)
        {
            var r         = new List <Models.VerificationMessage>();
            var manifests = System.IO.Directory.GetFiles(package.ExtractedPath, "*.dnn");

            if (manifests.Length == 1)
            {
                try
                {
                    var file = manifests[0];
                    using (var rdr = new System.Xml.XmlTextReader(new System.IO.FileStream(file, System.IO.FileMode.Open)))
                    {
                        while (rdr.Read())
                        {
                        }
                    }
                }
                catch (Exception)
                {
                    r.Add(new Models.VerificationMessage {
                        Message = "Package manifest must be properly formatted XML.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("7be70ad9-26e1-47c1-b7df-a53ed0c59c55"), Rule = GetType().ToString()
                    });
                }
            }
            return(r);
        }
示例#2
0
        public ActionResult AddPackFac(Package_Facilities f)
        {
            Package p = new Models.Package();

            f.P_ID = Convert.ToInt32(TempData["P_ID"]);
            f.add();
            return(RedirectToAction("PackFacilitiesList", new { a = f.P_ID }));
        }
示例#3
0
        public ActionResult UpdatePackage(int a)
        {
            Package p = new Models.Package();

            p.P_ID = a;
            p.Search();
            return(View(p));
        }
示例#4
0
        public Models.Package Post([FromBody] Models.Package package)
        {
            if (package == null)
            {
                throw new Box.Common.BoxLogicException("Pacote inválido.");
            }

            package.PackageUId = Guid.NewGuid().ToString();
            return(this._sgiService.SavePackage(package));
        }
示例#5
0
        public void DeletePackage(string id)
        {
            Models.Package package = GetPackage(id);
            if (package == null)
            {
                return;
            }

            _context.Packages.Remove(package);
            _context.SaveChanges();
            _log.Log($"Pacote {package.Name} foi removido.");
        }
示例#6
0
        public ActionResult DeletePackage(int a)
        {
            Package p = new Models.Package();

            p.P_ID = a;
            p.delete();
            Package_Facilities pf = new Package_Facilities();

            pf.P_ID = a;
            pf.delete();
            return(RedirectToAction("Package"));
        }
示例#7
0
        public List <Models.VerificationMessage> ApplyRule(Models.Package Package)
        {
            var r = new List <Models.VerificationMessage>();

            if (!System.IO.File.Exists(Package.Path))
            {
                r.Add(new Models.VerificationMessage {
                    Message = "Package does not exist", MessageType = Models.MessageTypes.Error, MessageId = new Guid("12a4c191-e443-4417-988e-93a14a419423"), Rule = GetType().ToString()
                });
            }
            return(r);
        }
示例#8
0
 private void VerifyButton_Click(object sender, EventArgs e)
 {
     BrowseButton.Enabled = false;
     VerifyButton.Enabled = false;
     Application.DoEvents();
     Models.Package package = VerificationController.TryParse(packagePathTextbox.Text);
     propertyGrid1.SelectedObject = package;
     dataGridView1.DataSource     = package.Messages;
     package.CleanUp();
     BrowseButton.Enabled = true;
     VerifyButton.Enabled = true;
     Application.DoEvents();
 }
示例#9
0
        public Models.Package Put(string id, [FromBody] Models.Package package)
        {
            if (package == null)
            {
                throw new Box.Common.BoxLogicException("Pacote inválido.");
            }

            if (id != package.PackageUId)
            {
                throw new Box.Common.BoxLogicException("Id inválido.");
            }

            return(this._sgiService.SavePackage(package));
        }
        public int AddNewPackage(Models.Package package)
        {
            var newpackage = Entites.tblPackages.Add(new tblPackage()
            {
                PACKAGE_NAME  = package.Name,
                PACKAGE_PRICE = package.Price,
            });

            Entites.SaveChanges();

            Entites.tblPackageModuleCounts.Add(new tblPackageModuleCount()
            {
                PACKAGE_ID   = newpackage.PACKAGE_ID,
                MODULE_COUNT = package.ModuleCount
            });
            Entites.SaveChanges();

            return(newpackage.PACKAGE_ID);
        }
示例#11
0
        public Models.Package SavePackage(Models.Package package)
        {
            Models.Package oldPackage = GetPackage(package.PackageUId);

            if (oldPackage == null)
            {
                _context.Entry <Models.Package>(package).State = EntityState.Added;
            }
            else
            {
                _context.Packages.Attach(oldPackage);
                _context.Entry <Models.Package>(oldPackage).CurrentValues.SetValues(package);
            }

            _context.SaveChanges(true);
            _log.Log($"Pacote {package.Name} foi criado/alterado.");

            return(package);
        }
示例#12
0
        public PartialViewResult Package(int id)
        {
            Models.Package pack;
            if (id == 0)
            {
                pack = new Models.Package();
            }
            else
            {
                using (DataContext _db = new DataContext())
                {
                    pack = _db.Packages.Where(p => p.Id == id).FirstOrDefault();
                }
            }
            using (DataContext _db = new DataContext())
            {
                ViewBag.package_list = _db.Packages.ToList();
            }

            return(PartialView("~/Views/Channel/_Package.cshtml", pack));
        }
示例#13
0
        private void FillViewModel(Models.Package package, PackageDetailsViewModel viewModel)
        {
            viewModel.ShippingAddress = package.ShippingAddress;
            viewModel.Status          = package.Status;
            if (package.Status == Status.Pending)
            {
                viewModel.EstimatedDeliveryDate = "N/A";
            }
            if (package.Status == Status.Delivered)
            {
                viewModel.EstimatedDeliveryDate = "Delivered";
            }
            if (package.Status == Status.Shipped)
            {
                viewModel.EstimatedDeliveryDate = package.EstimatedDeliveryDate.ToString();
            }
            viewModel.Weight = package.Weight;
            var recipient = Db.Users.FirstOrDefault(x => x.Id == package.RecipientId);

            viewModel.Recipient   = recipient != null ? recipient.Username : "******";
            viewModel.Description = package.Description;
        }
示例#14
0
        public List <Models.VerificationMessage> ApplyRule(Models.Package package)
        {
            var r     = new List <Models.VerificationMessage>();
            var fi    = new System.IO.FileInfo(package.Path);
            var valid = (fi.Length >= 3);

            if (!valid)
            {
                r.Add(new Models.VerificationMessage {
                    Message = "Package does not meet the size requirement.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("fe54f8ee-7dea-4f28-b009-14b900222410"), Rule = GetType().ToString()
                });
            }

            //less than 1KB
            if (fi.Length <= 1024)
            {
                r.Add(new Models.VerificationMessage {
                    Message = "Package size might be a bit too small to be valid.", MessageType = Models.MessageTypes.Warning, MessageId = new Guid("18e0a0bf-adaf-4329-9cd6-2a71788ca5c6"), Rule = GetType().ToString()
                });
            }

            return(r);
        }
        public ActionResult Confirm()
        {
            // If a user is logged in, confirm purchase. Otherwise, redirect to login
            if (Session["CustomerId"] != null)
            {
                // Get PackageId from TempData
                int pkgID = (int)Session["PkgID"];
                // Select package with given ID
                Models.Package pkg = db.Packages.FirstOrDefault(u => u.PackageId.Equals(pkgID));

                /* Put something in TempData, which is cleared after 1 request, so
                 * success message will only display the first time each package is booked,
                 * rather than every time Dashboard/Index is loaded */
                TempData["PkgMessage"] = "Package successfully booked!";
                // Clear Session variable for later use
                Session["PkgID"] = null;
                return(View(pkg));
            }
            else
            {
                return(RedirectToAction("Login", "Customer"));
            }
        }
示例#16
0
        public JsonResult Package(Models.Package package)
        {
            if (ModelState.IsValid)
            {
                using (DataContext _db = new DataContext())
                {
                    using (DbContextTransaction tran = _db.Database.BeginTransaction(IsolationLevel.Snapshot))
                    {
                        try
                        {
                            int user_id = ((User)Session["CurrentUser"]).Id;
                            if (package.Id == 0)
                            {
                                package.UserId = user_id;
                                _db.Packages.Add(package);
                                _db.SaveChanges();
                                this.AddLoging(_db,
                                               LogType.Package,
                                               LogMode.Add,
                                               user_id,
                                               package.Id,
                                               package.Name,
                                               Utils.Utils.GetAddedData(typeof(Package), package)
                                               );
                            }
                            else
                            {
                                Models.Package pack = _db.Packages.Where(p => p.Id == package.Id).FirstOrDefault();
                                if (pack != null)
                                {
                                    double old_price       = pack.Price;
                                    double old_jurid_price = pack.JuridPrice;
                                    int    old_cas_id      = pack.CasId;
                                    pack.Name             = package.Name;
                                    pack.Price            = package.Price;
                                    pack.CasId            = package.CasId;
                                    pack.IsDefault        = package.IsDefault;
                                    pack.JuridPrice       = package.JuridPrice;
                                    pack.MinPrice         = package.MinPrice;
                                    pack.RentType         = package.RentType;
                                    _db.Entry(pack).State = System.Data.Entity.EntityState.Modified;
                                    _db.SaveChanges();
                                    if (old_price != package.Price || old_jurid_price != package.JuridPrice)
                                    {
                                        var _cards = _db.Cards.Where(q => q.Subscribtions.Where(c => c.Status).Any())
                                                     .Where(q => q.Subscribtions.Where(c => c.Status).Any(c => c.SubscriptionPackages.Any(p => p.PackageId == pack.Id)))
                                                     .Where(c => c.CardStatus != CardStatus.Canceled).Select(c => new CardDetailData
                                        {
                                            CustomerType         = c.Customer.Type,
                                            IsBudget             = c.Customer.IsBudget,
                                            PaymentAmount        = c.Payments.Sum(p => (decimal?)p.Amount) ?? 0,
                                            ChargeAmount         = c.CardCharges.Select(s => (decimal?)s.Amount).Sum() ?? 0,
                                            Card                 = c,
                                            Subscribtion         = c.Subscribtions.Where(s => s.Status).FirstOrDefault(),
                                            SubscriptionPackages = c.Subscribtions.Where(s => s.Status).FirstOrDefault().SubscriptionPackages.ToList()
                                        }).ToList();

                                        var     Params             = _db.Params.ToList();
                                        string  charge_time        = Params.First(p => p.Name == "CardCharge").Value;
                                        decimal jurid_limit_months = decimal.Parse(Params.First(p => p.Name == "JuridLimitMonths").Value);
                                        foreach (CardDetailData _card in _cards)
                                        {
                                            if (_card.Subscribtion != null)
                                            {
                                                _card.Subscribtion.Amount           = _db.SubscriptionPackages.Include("Package").Where(s => s.SubscriptionId == _card.Subscribtion.Id).Sum(p => _card.CustomerType == CustomerType.Juridical ? p.Package.JuridPrice : p.Package.Price);
                                                _db.Entry(_card.Subscribtion).State = System.Data.Entity.EntityState.Modified;

                                                if (_card.Card.CardStatus != CardStatus.FreeDays && !(_card.Card.CardStatus == CardStatus.Active && _card.Card.Mode == 1))
                                                {
                                                    Utils.Utils.ChangeFinishDateByPackage(_db, _card, charge_time, jurid_limit_months, (decimal)_card.Subscribtion.Amount);
                                                }
                                            }
                                        }
                                    }

                                    if (old_cas_id != package.CasId)
                                    {
                                        string[]  address = _db.Params.Where(c => c.Name == "CASAddress").Select(c => c.Value).First().Split(':');
                                        CASSocket _socket = new CASSocket()
                                        {
                                            IP = address[0], Port = int.Parse(address[1])
                                        };
                                        _socket.Connect();

                                        var _cards = _db.Cards.Where(q => q.Subscribtions.Where(c => c.Status).Any(c => c.SubscriptionPackages.Any(p => p.PackageId == pack.Id)))
                                                     .Where(c => c.CardStatus != CardStatus.Canceled).ToList();
                                        foreach (Card _card in _cards)
                                        {
                                            int card_num = int.Parse(_card.CardNum);
                                            if (!_socket.SendEntitlementRequest(card_num, new short[] { (short)old_cas_id }, DateTime.SpecifyKind(_card.CasDate, DateTimeKind.Utc), false))
                                            {
                                                throw new Exception();
                                            }

                                            _card.CasDate          = DateTime.Now;
                                            _db.Entry(_card).State = EntityState.Modified;
                                            if (!_socket.SendEntitlementRequest(card_num, new short[] { (short)package.CasId }, DateTime.SpecifyKind(_card.CasDate, DateTimeKind.Utc), true))
                                            {
                                                throw new Exception();
                                            }
                                        }
                                        _socket.Disconnect();
                                        _db.SaveChanges();
                                    }

                                    List <LoggingData> logs = Newtonsoft.Json.JsonConvert.DeserializeObject <List <LoggingData> >(package.Logging);
                                    if (logs != null && logs.Count > 0)
                                    {
                                        this.AddLoging(_db,
                                                       LogType.Package,
                                                       LogMode.Change,
                                                       user_id,
                                                       package.Id,
                                                       package.Name,
                                                       logs
                                                       );
                                    }
                                }
                            }
                            _db.SaveChanges();
                            tran.Commit();
                        }
                        catch (Exception ex)
                        {
                            tran.Rollback();
                            return(Json("0"));
                        }
                    }
                }
                return(Json("1"));
            }
            return(Json("0"));
        }
        public List <Models.VerificationMessage> ApplyRule(Models.Package package, Models.Manifest manifest)
        {
            var r = new List <Models.VerificationMessage>();

            try
            {
                if (manifest.ComponentNodes == null)
                {
                    return(r);
                }

                foreach (XmlNode componentNode in manifest.ComponentNodes)
                {
                    if (componentNode.Attributes == null)
                    {
                        continue;
                    }

                    var type = componentNode.Attributes["type"];
                    if (type == null || string.IsNullOrEmpty(type.Value))
                    {
                        continue;
                    }

                    if (type.Value != "AuthenticationSystem")
                    {
                        continue;
                    }

                    var authenticationServiceNodes = componentNode.SelectNodes("authenticationService");
                    if (authenticationServiceNodes == null || authenticationServiceNodes.Count <= 0)
                    {
                        r.Add(new Models.VerificationMessage {
                            Message = "ALL Authentication System Definitions must have at least one authenticationService specified.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("d9bc01ff-0cc1-4b08-9750-1f9ad2d6c27e"), Rule = GetType().ToString()
                        });
                    }
                    else
                    {
                        foreach (XmlNode ctl in authenticationServiceNodes)
                        {
                            var typeNode = ctl.SelectSingleNode("type");
                            if (typeNode == null || string.IsNullOrEmpty(typeNode.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL authentication service nodes must have a type specified.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("297f1026-1d9a-4d06-896b-0deb0e0c17be"), Rule = GetType().ToString()
                                });
                            }

                            var settingsControlSrc = ctl.SelectSingleNode("settingsControlSrc");
                            if (settingsControlSrc == null || string.IsNullOrEmpty(settingsControlSrc.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL authentication service nodes must have a settings control source specified.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("00814677-1649-4984-a815-f3920e895a7a"), Rule = GetType().ToString()
                                });
                            }

                            var loginControlSrc = ctl.SelectSingleNode("loginControlSrc");
                            if (loginControlSrc == null || string.IsNullOrEmpty(loginControlSrc.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL authentication service nodes must have a login control source specified.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("82942d23-6cae-4976-bd74-fae3fca9287f"), Rule = GetType().ToString()
                                });
                            }

                            var logoffControlSrc = ctl.SelectSingleNode("logoffControlSrc");
                            if (logoffControlSrc == null || string.IsNullOrEmpty(logoffControlSrc.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL authentication service nodes must have a logoff control source specified.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("3f4ec2b6-3e61-4c29-b90f-44cb9ee153e9"), Rule = GetType().ToString()
                                });
                            }
                        }
                    }
                }
            }
            catch (Exception exc)
            {
                Trace.WriteLine("There was an issue with the Authentication System node scanner", exc.Message);
                r.Add(new Models.VerificationMessage {
                    Message = "An Error occurred while processing Rules.Manifest.Components.AuthenticationSystemNode", MessageType = Models.MessageTypes.SystemError, MessageId = new Guid("c8458f8e-91b2-4c81-ae02-e1b3a18aec8d"), Rule = GetType().ToString()
                });
            }

            return(r);
        }
示例#18
0
        public List <Models.VerificationMessage> ApplyRule(Models.Package package, Models.Manifest manifest)
        {
            var r = new List <Models.VerificationMessage>();

            try
            {
                var xml = manifest.ManifestDoc;

                if (xml != null)
                {
                    var folders = xml.SelectSingleNode("/dotnetnuke/folders");

                    if (folders == null)
                    {
                        r.Add(new Models.VerificationMessage {
                            Message = "Extension manifest must contain a folders node.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("274d7fc6-559e-49fc-8cd7-84dbf409745b"), Rule = GetType().ToString()
                        });
                    }
                    else
                    {
                        if (!folders.HasChildNodes)
                        {
                            r.Add(new Models.VerificationMessage {
                                Message = "Extension manifest must contain a folders node with child nodes.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("af254a4c-ad18-4f40-9469-6fd131dc7c8b"), Rule = GetType().ToString()
                            });
                        }

                        foreach (XmlNode folderNode in folders.ChildNodes)
                        {
                            var nameNode = folderNode.SelectSingleNode("name");
                            if (nameNode == null || string.IsNullOrEmpty(nameNode.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL folder nodes in the manifest must have a name node.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("7fd48677-8409-46a7-b790-20ebc90108b0"), Rule = GetType().ToString()
                                });
                            }
                            else
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = nameNode.InnerText, MessageType = Models.MessageTypes.Info, MessageId = new Guid("d40fe32f-ea79-49c3-802c-f7264fb69a2b"), Rule = GetType().ToString()
                                });
                            }

                            var friendlyNameNode = folderNode.SelectSingleNode("friendlyname");
                            if (friendlyNameNode == null || string.IsNullOrEmpty(friendlyNameNode.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL folder nodes in the manifest must have a friendly name node.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("d6d6dcaf-a5a2-486a-bb30-983b39528ed0"), Rule = GetType().ToString()
                                });
                            }
                            else
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = friendlyNameNode.InnerText, MessageType = Models.MessageTypes.Info, MessageId = new Guid("671b6736-b686-485b-a269-7be54180517e"), Rule = GetType().ToString()
                                });
                            }

                            var folderNameNode = folderNode.SelectSingleNode("foldername");
                            if (folderNameNode == null || string.IsNullOrEmpty(folderNameNode.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL folder nodes in the manifest must have a folder name node.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("30c30ca0-0cf2-4455-8b1c-88f7d167beb1"), Rule = GetType().ToString()
                                });
                            }
                            else
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = folderNameNode.InnerText, MessageType = Models.MessageTypes.Info, MessageId = new Guid("fe5b2f25-6572-41f8-86c2-0967efa7d712"), Rule = GetType().ToString()
                                });
                            }

                            var moduleNameNode = folderNode.SelectSingleNode("modulename");
                            if (moduleNameNode == null || string.IsNullOrEmpty(moduleNameNode.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL folder nodes in the manifest must have a module name node.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("3a5ad293-4e08-4a5d-9ba2-b4d4b1d27e39"), Rule = GetType().ToString()
                                });
                            }
                            else
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = moduleNameNode.InnerText, MessageType = Models.MessageTypes.Info, MessageId = new Guid("52c3d044-89f0-4397-a583-54d66fe738a7"), Rule = GetType().ToString()
                                });
                            }

                            var descriptionNode = folderNode.SelectSingleNode("description");
                            if (descriptionNode == null || string.IsNullOrEmpty(descriptionNode.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL folder nodes in the manifest must have a description.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("efce2ed8-9748-493b-839d-7c6e370b88dc"), Rule = GetType().ToString()
                                });
                            }
                            else
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = descriptionNode.InnerText, MessageType = Models.MessageTypes.Info, MessageId = new Guid("93959db4-b7b0-4917-bb76-465173b9dd2b"), Rule = GetType().ToString()
                                });
                            }

                            var versionNode = folderNode.SelectSingleNode("version");
                            if (versionNode == null || string.IsNullOrEmpty(versionNode.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL folder nodes in the manifest must have a description.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("cd8e3ec7-603e-474f-a85b-6fd8586ad8a5"), Rule = GetType().ToString()
                                });
                            }
                            else
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = versionNode.InnerText, MessageType = Models.MessageTypes.Info, MessageId = new Guid("aa26db5b-f3a6-4af4-bb88-a9505d247732"), Rule = GetType().ToString()
                                });
                            }

                            r.Add(new Models.VerificationMessage {
                                Message = "Module", MessageType = Models.MessageTypes.Info, MessageId = new Guid("feaf4309-3ef3-4278-b610-b1f78fe3c6a9"), Rule = GetType().ToString()
                            });
                        }
                    }
                }
            }
            catch //(Exception exc)
            {
                r.Add(new Models.VerificationMessage {
                    Message = "Extension manifest must be properly formatted XML.", MessageType = Models.MessageTypes.SystemError, MessageId = new Guid("5a1585c5-1c08-49b3-885b-6a02f4c59bfa"), Rule = GetType().ToString()
                });
            }
            return(r);
        }
示例#19
0
        public List <Models.VerificationMessage> ApplyRule(Models.Package package, Models.Manifest manifest)
        {
            var r = new List <Models.VerificationMessage>();

            try
            {
                var xml = manifest.ManifestDoc;

                if (xml != null)
                {
                    var packages = xml.SelectSingleNode("/dotnetnuke/packages");

                    if (packages != null)
                    {
                        foreach (XmlNode packageNode in packages.ChildNodes)
                        {
                            var ownerNode = packageNode.SelectSingleNode("owner");
                            if (ownerNode == null)
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL packages in the manifest must have an owner.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("13c5a640-56ed-484e-956c-ebad86ce8399"), Rule = GetType().ToString()
                                });
                            }
                            else
                            {
                                var name = ownerNode.SelectSingleNode("name");
                                if (name == null || string.IsNullOrEmpty(name.InnerText))
                                {
                                    r.Add(new Models.VerificationMessage {
                                        Message = "ALL packages in the manifest should have an owner name.", MessageType = Models.MessageTypes.Warning, MessageId = new Guid("22caecf4-419f-4f7a-92bb-69e644762941"), Rule = GetType().ToString()
                                    });
                                }
                                var organization = ownerNode.SelectSingleNode("organization");
                                if (organization == null || string.IsNullOrEmpty(organization.InnerText))
                                {
                                    r.Add(new Models.VerificationMessage {
                                        Message = "ALL packages in the manifest should have an owner organization.", MessageType = Models.MessageTypes.Warning, MessageId = new Guid("cbd22b56-778c-43d5-bebc-89e44b99684b"), Rule = GetType().ToString()
                                    });
                                }
                                var url = ownerNode.SelectSingleNode("url");
                                if (url == null || string.IsNullOrEmpty(url.InnerText))
                                {
                                    r.Add(new Models.VerificationMessage {
                                        Message = "ALL packages in the manifest should have an owner URL.", MessageType = Models.MessageTypes.Warning, MessageId = new Guid("aa1d517b-3655-4f92-9332-9544a9f54eed"), Rule = GetType().ToString()
                                    });
                                }
                                var email = ownerNode.SelectSingleNode("email");
                                if (email == null || string.IsNullOrEmpty(email.InnerText))
                                {
                                    r.Add(new Models.VerificationMessage {
                                        Message = "ALL packages in the manifest should have an owner Email.", MessageType = Models.MessageTypes.Warning, MessageId = new Guid("34db8679-d5b2-4722-a17d-d555eaf597ae"), Rule = GetType().ToString()
                                    });
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                r.Add(new Models.VerificationMessage {
                    Message = "There was a problem parsing the package owner from the xml manifest.", MessageType = Models.MessageTypes.SystemError, MessageId = new Guid("f35eea0a-2841-4c8e-978c-bfcb7fa0ba42"), Rule = GetType().ToString()
                });
            }

            return(r);
        }
示例#20
0
        public ActionResult DetailsPackages(int a)
        {
            Package p = new Models.Package();

            return(View(p.packagebyappointment(a)));
        }
示例#21
0
        public ActionResult Order(Models.JobInfo ji)
        {
            var j = Models.Job.Session();

            ViewBag.msg = 0;
            if (j.Paid)
            {
                ViewBag.msg = -10;
                return(View("Order", ji));
            }
            if (!ji.TermsConditionsAgree)
            {
                ViewBag.msg = -11;
                return(View("Order", ji));
            }


            if (ModelState.IsValid)
            {
                j.JobPersonalInfo = ji;
                Models.Job.Update(j);
                int    job_id_parent = LoggedProfile.logged.Id;
                string servicesToPay = "";
                foreach (var x in j.ServicesId)
                {
                    servicesToPay += (servicesToPay.Length > 0 ? "," : "") + x.ToString();
                }

                int r = new Jobs().Job_AddCheck(j.Id, job_id_parent, ji.JobEmail, j.Zip.ZipCode, j.Zip.StateCode, servicesToPay, j.Zip.CountryId);
                if (r < 0)
                {
                    ViewBag.msg = r;
                    return(View("Order", ji));
                }
                else// jobCheck OK
                {
                    bool    abs      = j.Zip.AddressBillingSame;
                    string  referrer = Models.Job.RefererGet(); // to check from cookie
                    int     fk_c_id  = j.CurrencyId;            // to see
                    decimal c_value  = j.CurrencyValue;

                    string visitDateCk = Models.Job.VisitorSignupCookieGet("visitdate");
                    string visitDate   = !String.IsNullOrWhiteSpace(visitDateCk) ? DateTime.Parse(Server.UrlDecode(visitDateCk)).ToString() : "";

                    int bannerId       = Models.Job.BannerGet();
                    int jobMailingList = 0;

                    var      sl = new List <Models.Service>();
                    var      p  = new Models.Package();
                    decimal  promoCodeAmount = 0;
                    decimal  price           = Models.Job.AmountTotal(false, ref sl, ref p, ref promoCodeAmount);
                    DateTime sessTimeDate    = j.SessionDateTime.AddHours(j.SessionTime);

                    int r2 = new Jobs().Job_Add
                                 (j.Id, ji.FirstName, ji.LastName, ji.JobEmail, ji.Password, abs ? j.Zip.AddressText : j.Zip.AddressTextBill, abs ? j.Zip.CountryId : j.Zip.CountryIdBill, abs ? j.Zip.City : j.Zip.CityBill,
                                 abs ? j.Zip.StateCode : j.Zip.StateCodeBill, abs ? j.Zip.ZipCode : j.Zip.ZipCodeBill, ji.Phone, j.Promocode != null ? j.Promocode.name : null, sessTimeDate.ToString(), j.PhotographerId, referrer, fk_c_id, c_value, price, j.PackageId,
                                 visitDate, bannerId, jobMailingList, promoCodeAmount, job_id_parent, abs ? "" : j.Zip.AddressText, abs ? "" : j.Zip.City, abs ? "" : j.Zip.ZipCode, abs ? "" : j.Zip.StateCode, abs ? -1 : j.Zip.CountryId
                                 );

                    if (r2 < 0)
                    {
                        ViewBag.msg = r2;
                        return(View("Order", ji));
                    }
                    else// everything ok
                    {
                        j.Id = r2;
                        Models.Job.Update(j);

                        return(RedirectToAction("Index", "Payment"));
                    }
                }
            }
            else
            {
                return(View("Order", ji));
            }
        }
示例#22
0
        public List <Models.VerificationMessage> ApplyRule(Models.Package package, Models.Manifest manifest)
        {
            var r = new List <Models.VerificationMessage>();

            try
            {
                if (manifest.ComponentNodes == null)
                {
                    return(r);
                }

                foreach (XmlNode componentNode in manifest.ComponentNodes)
                {
                    if (componentNode.Attributes == null)
                    {
                        continue;
                    }

                    var type = componentNode.Attributes["type"];
                    if (type == null || string.IsNullOrEmpty(type.Value))
                    {
                        continue;
                    }

                    if (type.Value != "SkinObject")
                    {
                        continue;
                    }

                    var moduleControls = componentNode.SelectNodes("moduleControl");
                    if (moduleControls == null || moduleControls.Count <= 0)
                    {
                        r.Add(new Models.VerificationMessage {
                            Message = "ALL Skin Object Definitions must have at least one module control specified.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("070cad12-9ee1-4453-9174-5523e81c5e73"), Rule = GetType().ToString()
                        });
                    }
                    else
                    {
                        foreach (XmlNode ctl in moduleControls)
                        {
                            var controlKey = ctl.SelectSingleNode("controlKey");
                            if (controlKey == null || string.IsNullOrEmpty(controlKey.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL Module controls must have a control key specified.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("d05bc48a-412b-4bae-905b-87c4742bed84"), Rule = GetType().ToString()
                                });
                            }
                            else
                            {
                                var controlSrc = ctl.SelectSingleNode("controlSrc");
                                if (controlSrc == null || string.IsNullOrEmpty(controlSrc.InnerText))
                                {
                                    r.Add(new Models.VerificationMessage {
                                        Message = "ALL Module controls must have a control source specified.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("210ce338-4c0b-40f3-aefc-2688b648ef22"), Rule = GetType().ToString()
                                    });
                                }
                                else
                                {
                                    var supportsPartialRendering = ctl.SelectSingleNode("supportsPartialRendering");
                                    if (supportsPartialRendering == null || string.IsNullOrEmpty(supportsPartialRendering.InnerText)) // || supportsPartialRendering.InnerText.ToLowerInvariant() == "false")
                                    {
                                        r.Add(new Models.VerificationMessage {
                                            Message = "A module control which does not specify supportsPartialRendering has been detected (" + controlSrc.InnerText + ").", MessageType = Models.MessageTypes.Warning, MessageId = new Guid("9e9bfd26-ac1d-46c4-bdad-7b293d1cf57d"), Rule = GetType().ToString()
                                        });
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception exc)
            {
                Trace.WriteLine("There was an issue with the Skin Object node scanner", exc.Message);
                r.Add(new Models.VerificationMessage {
                    Message = "An Error occurred while processing Rules.Manifest.Components.SkinObjectNode", MessageType = Models.MessageTypes.SystemError, MessageId = new Guid("bd9af978-f01e-432a-ab12-12322564182c"), Rule = GetType().ToString()
                });
            }

            return(r);
        }
示例#23
0
        public List <Models.VerificationMessage> ApplyRule(Models.Package package)
        {
            var r         = new List <Models.VerificationMessage>();
            var manifests = Directory.GetFiles(package.ExtractedPath, "*.dnn");

            if (manifests.Length > 1)
            {
                r.Add(new Models.VerificationMessage {
                    Message = "Package contains multiple manifest (.dnn, .dnn5, .dnn6, etc.) files.", MessageType = Models.MessageTypes.Info, MessageId = new Guid("d7ab0418-c623-4c00-8d8a-bdda72b72322"), Rule = GetType().ToString()
                });
            }

            if (manifests.Length < 1)
            {
                r.Add(new Models.VerificationMessage {
                    Message = "Package must contain at least one manifest (.dnn, .dnn5, .dnn6, etc.) file for installation.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("52416eb4-1001-4208-a627-0b2ced7b7212"), Rule = GetType().ToString()
                });
            }

            var dnnManifests  = new List <string>();
            var dnn5Manifests = new List <string>();
            var dnn6Manifests = new List <string>();

            foreach (var manifest in manifests)
            {
                if (manifest.EndsWith(".dnn"))
                {
                    dnnManifests.Add(manifest);
                }
                else if (manifest.EndsWith(".dnn5"))
                {
                    dnn5Manifests.Add(manifest);
                }
                else if (manifest.EndsWith(".dnn6"))
                {
                    dnn6Manifests.Add(manifest);
                }
            }

            if (dnnManifests.ToArray().Length == 1)
            {
                r.Add(new Models.VerificationMessage {
                    Message = "Package contains a .dnn manifest file.", MessageType = Models.MessageTypes.Info, MessageId = new Guid("56129123-596b-4f1c-9e7e-fe03e781a224"), Rule = GetType().ToString()
                });
            }
            else if (dnnManifests.ToArray().Length > 1)
            {
                r.Add(new Models.VerificationMessage {
                    Message = "Package should not contain more than one .dnn manifest file.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("13b9eec9-9029-4642-868e-8d84355686cd"), Rule = GetType().ToString()
                });
            }

            if (dnn5Manifests.ToArray().Length == 1)
            {
                r.Add(new Models.VerificationMessage {
                    Message = "Package contains a .dnn5 manifest file.", MessageType = Models.MessageTypes.Info, MessageId = new Guid("51c8699a-8e99-4d0c-880e-9bcc00125786"), Rule = GetType().ToString()
                });
            }
            else if (dnn5Manifests.ToArray().Length > 1)
            {
                r.Add(new Models.VerificationMessage {
                    Message = "Package should not contain more than one .dnn5 manifest file.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("7a9158ad-0a09-4df3-bfc7-509f3f906072"), Rule = GetType().ToString()
                });
            }

            if (dnn6Manifests.ToArray().Length == 1)
            {
                r.Add(new Models.VerificationMessage {
                    Message = "Package contains a .dnn6 manifest file.", MessageType = Models.MessageTypes.Info, MessageId = new Guid("ae26ae03-7b40-4252-8aee-a5a170565231"), Rule = GetType().ToString()
                });
            }
            else if (dnn6Manifests.ToArray().Length > 1)
            {
                r.Add(new Models.VerificationMessage {
                    Message = "Package should not contain more than one .dnn6 manifest file.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("9a047962-5490-48ad-9421-ddd69c05e3a0"), Rule = GetType().ToString()
                });
            }

            return(r);
        }
示例#24
0
        public List <Models.VerificationMessage> ApplyRule(Models.Package package, Models.Manifest manifest)
        {
            var r = new List <Models.VerificationMessage>();

            try
            {
                if (manifest.ComponentNodes == null)
                {
                    return(r);
                }

                foreach (XmlNode componentNode in manifest.ComponentNodes)
                {
                    if (componentNode.Attributes == null)
                    {
                        continue;
                    }

                    var type = componentNode.Attributes["type"];
                    if (type == null || string.IsNullOrEmpty(type.Value))
                    {
                        continue;
                    }

                    if (type.Value != "Config")
                    {
                        continue;
                    }

                    var configNode = componentNode.SelectSingleNode("config");
                    if (configNode == null)
                    {
                        continue;
                    }

                    var configFileNode = configNode.SelectSingleNode("configFile");
                    if (configFileNode == null)
                    {
                        r.Add(new Models.VerificationMessage {
                            Message = "All config nodes must have a configFile specified.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("a8178b28-92da-4933-b9c5-b7396ee97561"), Rule = GetType().ToString()
                        });
                    }
                    else
                    {
                        var configFile = configFileNode.InnerText;
                        r.Add(new Models.VerificationMessage {
                            Message = "Installing this extension will result in changes to the " + configFile + " file.", MessageType = Models.MessageTypes.Info, MessageId = new Guid("c47e6316-4793-4330-911c-6ad434ac1a73"), Rule = GetType().ToString()
                        });
                    }

                    var installNode = configNode.SelectSingleNode("install");
                    if (installNode == null)
                    {
                        r.Add(new Models.VerificationMessage {
                            Message = "All 'config' nodes must have a 'install' node.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("54c2e281-07f6-4fd7-9f6d-2995514d861b"), Rule = GetType().ToString()
                        });
                    }
                    else
                    {
                        var configurationNode = installNode.SelectSingleNode("configuration");
                        if (configurationNode == null)
                        {
                            r.Add(new Models.VerificationMessage {
                                Message = "All 'config/install' nodes must have a 'configuration' node.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("25a7da28-953a-4f1b-8c00-e7c0f4ee8b3e"), Rule = GetType().ToString()
                            });
                        }
                        else
                        {
                            var nodesNode = configurationNode.SelectSingleNode("nodes");
                            if (nodesNode == null)
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "All 'config/install/configuration' nodes must have a 'nodes' node.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("072f49a1-87ba-4996-bd38-629b6fe9cee8"), Rule = GetType().ToString()
                                });
                            }
                            else
                            {
                                var nodeNodes = nodesNode.SelectNodes("node");
                                if (nodeNodes != null)
                                {
                                    foreach (XmlNode nodeNode in nodeNodes)
                                    {
                                        if (nodeNode.Attributes != null && nodeNode.Attributes.Count > 0)
                                        {
                                            var path = nodeNode.Attributes["path"];
                                            if (path == null || string.IsNullOrEmpty(path.Value))
                                            {
                                                r.Add(new Models.VerificationMessage {
                                                    Message = "All 'config/install/configuration/nodes/node' nodes must have a 'path' attribute.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("e796ad35-e39d-4921-b92d-c94524ea4430"), Rule = GetType().ToString()
                                                });
                                            }

                                            var action = nodeNode.Attributes["action"];
                                            if (action == null || string.IsNullOrEmpty(action.Value))
                                            {
                                                r.Add(new Models.VerificationMessage {
                                                    Message = "All 'config/install/configuration/nodes/node' nodes must have a 'action' attribute.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("822d6ff2-7feb-439c-b232-b9c3b9177f24"), Rule = GetType().ToString()
                                                });
                                            }
                                            else
                                            {
                                                if (action.Value.ToLower() != "remove")
                                                {
                                                    var collision = nodeNode.Attributes["collision"];
                                                    if (collision == null || string.IsNullOrEmpty(collision.Value))
                                                    {
                                                        r.Add(new Models.VerificationMessage {
                                                            Message = "All 'config/install/configuration/nodes/node' nodes must have a 'collision' attribute unless the action node is set to 'remove'.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("243e15fa-1aff-4ee6-b19d-aeeb75768b9c"), Rule = GetType().ToString()
                                                        });
                                                    }
                                                }
                                            }
                                        }
                                        else
                                        {
                                            r.Add(new Models.VerificationMessage {
                                                Message = "Each 'config/install/configuration/nodes/node' node must have a path, action and collision attribute.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("5da6d43b-7079-46fe-9800-4f180740ec7e"), Rule = GetType().ToString()
                                            });
                                        }
                                    }
                                }
                            }
                        }
                    }

                    var uninstallNode = configNode.SelectSingleNode("uninstall");
                    if (uninstallNode == null)
                    {
                        r.Add(new Models.VerificationMessage {
                            Message = "All 'config' nodes must have a 'uninstall' node.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("b797fa28-bb51-4b40-80bc-1137a217be9f"), Rule = GetType().ToString()
                        });
                    }
                    else
                    {
                        var configurationNode = uninstallNode.SelectSingleNode("configuration");
                        if (configurationNode == null)
                        {
                            r.Add(new Models.VerificationMessage {
                                Message = "All 'config/uninstall' nodes must have a 'configuration' node.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("6727051d-4e36-4709-b6e6-850e2a118030"), Rule = GetType().ToString()
                            });
                        }
                        else
                        {
                            var nodesNode = configurationNode.SelectSingleNode("nodes");
                            if (nodesNode == null)
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "All 'config/uninstall/configuration' nodes must have a 'nodes' node.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("59a2a2af-6071-4e2d-89a4-1d41b176dba5"), Rule = GetType().ToString()
                                });
                            }
                            else
                            {
                                var nodeNodes = nodesNode.SelectNodes("node");
                                if (nodeNodes != null)
                                {
                                    foreach (XmlNode nodeNode in nodeNodes)
                                    {
                                        if (nodeNode.Attributes != null && nodeNode.Attributes.Count > 0)
                                        {
                                            var path = nodeNode.Attributes["path"];
                                            if (path == null || string.IsNullOrEmpty(path.Value))
                                            {
                                                r.Add(new Models.VerificationMessage {
                                                    Message = "All 'config/uninstall/configuration/nodes/node' nodes must have a 'path' attribute.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("83da185a-66d1-41eb-80d9-357ed83e71e7"), Rule = GetType().ToString()
                                                });
                                            }

                                            var action = nodeNode.Attributes["action"];
                                            if (action == null || string.IsNullOrEmpty(action.Value))
                                            {
                                                r.Add(new Models.VerificationMessage {
                                                    Message = "All 'config/uninstall/configuration/nodes/node' nodes must have a 'action' attribute.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("3a53b9b4-32f2-4e2e-8f09-ea81d7ced1c5"), Rule = GetType().ToString()
                                                });
                                            }
                                        }
                                        else
                                        {
                                            r.Add(new Models.VerificationMessage {
                                                Message = "Each 'config/uninstall/configuration/nodes/node' node must have a path and action attribute.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("640b6762-7451-47e2-a8e1-bd0e5d39abf8"), Rule = GetType().ToString()
                                            });
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception exc)
            {
                Trace.WriteLine("There was an issue with the cleanup node scanner", exc.Message);
                r.Add(new Models.VerificationMessage {
                    Message = "An Error occurred while processing Rules.Manifest.Components.CleanupNode", MessageType = Models.MessageTypes.SystemError, MessageId = new Guid("1ab5a0a2-e7c0-41d7-89f2-44395df784f9"), Rule = GetType().ToString()
                });
            }

            return(r);
        }
        public List <Models.VerificationMessage> ApplyRule(Models.Package package, Models.Manifest manifest)
        {
            var r = new List <Models.VerificationMessage>();

            try
            {
                if (manifest.ComponentNodes == null)
                {
                    return(r);
                }

                foreach (XmlNode componentNode in manifest.ComponentNodes)
                {
                    if (componentNode.Attributes == null)
                    {
                        continue;
                    }

                    var type = componentNode.Attributes["type"];
                    if (type == null || string.IsNullOrEmpty(type.Value))
                    {
                        continue;
                    }

                    if (type.Value != "DashboardControl")
                    {
                        continue;
                    }

                    var dashboardControlNodes = componentNode.SelectNodes("dashboardControl");
                    if (dashboardControlNodes == null || dashboardControlNodes.Count <= 0)
                    {
                        r.Add(new Models.VerificationMessage {
                            Message = "ALL Dashboard ControlDefinitions must have at least one dashboardControl node specified.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("a56f4b2d-09b0-406e-a1dc-a67e2b646cd4"), Rule = GetType().ToString()
                        });
                    }
                    else
                    {
                        foreach (XmlNode ctl in dashboardControlNodes)
                        {
                            var keyNode = ctl.SelectSingleNode("key");
                            if (keyNode == null || string.IsNullOrEmpty(keyNode.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL dashboard control nodes must have a type node specified.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("6a6ba22f-3b20-44e9-9717-c63a52131e37"), Rule = GetType().ToString()
                                });
                            }

                            var src = ctl.SelectSingleNode("src");
                            if (src == null || string.IsNullOrEmpty(src.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL dashboard control nodes must have a src node specified.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("f9b83213-46bd-4ed7-a569-493faab3ccef"), Rule = GetType().ToString()
                                });
                            }

                            var localResources = ctl.SelectSingleNode("localResources");
                            if (localResources == null || string.IsNullOrEmpty(localResources.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL dashboard control nodes must have a local resources node specified.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("d156bebb-0073-4384-97a3-6d47e2a9519e"), Rule = GetType().ToString()
                                });
                            }

                            var controllerClass = ctl.SelectSingleNode("controllerClass");
                            if (controllerClass == null || string.IsNullOrEmpty(controllerClass.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL dashboard control nodes must have a controller class node specified.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("10253a22-66c6-4259-9179-83fa34b760ae"), Rule = GetType().ToString()
                                });
                            }

                            var isEnabled = ctl.SelectSingleNode("isEnabled");
                            if (isEnabled == null || string.IsNullOrEmpty(isEnabled.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL dashboard control nodes must have a isEnabled node specified.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("fb5055df-c353-4bef-953d-87e13c2852b8"), Rule = GetType().ToString()
                                });
                            }

                            var viewOrder = ctl.SelectSingleNode("viewOrder");
                            if (viewOrder == null || string.IsNullOrEmpty(viewOrder.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL dashboard control nodes must have a viewOrder node specified.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("ee95a3a9-16ca-40c5-a0a3-b0980a3803eb"), Rule = GetType().ToString()
                                });
                            }
                        }
                    }
                }
            }
            catch (Exception exc)
            {
                Trace.WriteLine("There was an issue with the Dashboard Control node scanner", exc.Message);
                r.Add(new Models.VerificationMessage {
                    Message = "An Error occurred while processing Rules.Manifest.Components.DashboardControlNode", MessageType = Models.MessageTypes.SystemError, MessageId = new Guid("38d83abe-546a-432f-8253-9e0b382690f9"), Rule = GetType().ToString()
                });
            }

            return(r);
        }
        public ActionResult ConfirmPurchase(int id)
        {
            // If a user is logged in, confirm purchase. Otherwise, redirect to login
            if (Session["CustomerId"] != null)
            {
                // Get CustomerId
                int custID = Convert.ToInt32(Session["CustomerId"]);
                // Get PackageId
                int pkgID = id;
                // Select package with given ID to create booking
                Models.Package pkg = db.Packages.FirstOrDefault(u => u.PackageId.Equals(pkgID));
                // Insert selected package into Bookings table
                Booking book = new Booking();
                book.BookingDate   = DateTime.Now;                          // BookingDate is the time the booking is made
                book.BookingNo     = RandomStringGenerator.RandomString(6); // creates random string of 6 characters
                book.TravelerCount = 1;                                     // project document specified always 1 traveler, for now
                book.CustomerId    = custID;
                book.TripTypeId    = "B";
                book.PackageId     = pkg.PackageId;
                book.BasePrice     = pkg.PkgBasePrice;

                /* "ItineraryNo" from BookingDetails does not auto-increment, AND allows
                 * duplicate values, so this SQL query will grab the highest ItineraryNo
                 * value, which we can add 1 to to make a new ItineraryNo */
                //string query =
                //    "SELECT TOP 1 ItineraryNo " +
                //    "FROM BookingDetails " +
                //    "ORDER BY ItineraryNo DESC";
                double itinerary = BookingDetailDB.GetLastItineraryNo();
                int    bookingId = BookingDetailDB.GetLastBookingId();

                /* Switch statement that determines the destination of a package, class, and
                 * RegionId of a package. There's nothing in the Packages table showing this,
                 * so the destinations are hardcoded, as well as the potential package IDs.
                 * Ideally, a destination column would be added to the Packages table */
                string destination;
                string region;
                string classID; // first class, business class, etc...

                switch (pkgID)
                {
                case 1:                   // Caribbean
                    destination = "Santo Domingo, Dominican Republic";
                    region      = "OTHR"; // Other region
                    classID     = "ECN";  // Economy Class
                    break;

                case 2:                  // Polynesia
                    destination = "Honolulu, United States";
                    region      = "NA";  // North America
                    classID     = "ECN"; // Economy Class
                    break;

                case 3:     // Asia
                    destination = "Bangkok, Thailand";
                    region      = "ASIA";
                    classID     = "DLX"; // Deluxe Class
                    break;

                case 4:                  // Europe
                    destination = "Rome, Italy";
                    region      = "EU";  // Europe and UK
                    classID     = "FST"; // First Class
                    break;

                default:                  // New packages without any assignment here, or errors
                    destination = "Atlantis";
                    region      = "OTHR"; // Other region
                    classID     = "BSN";  // Business Class
                    break;
                }

                // Create new BookingDetail for this booking
                Models.BookingDetail detail = new Models.BookingDetail();
                detail.ItineraryNo       = itinerary + 1;
                detail.TripStart         = pkg.PkgStartDate;
                detail.TripEnd           = pkg.PkgEndDate;
                detail.Description       = pkg.PkgDesc;
                detail.Destination       = destination;
                detail.BasePrice         = pkg.PkgBasePrice;
                detail.AgencyCommission  = pkg.PkgAgencyCommission;
                detail.BookingId         = bookingId + 1;
                detail.RegionId          = region;
                detail.ClassId           = classID;
                detail.FeeId             = "BK"; // "Booking Charge", hardcoded as no column for this in Packages
                detail.ProductSupplierId = 80;   // "80" corresponds to a company that
                                                 // provides airfare; hardcoded, once again

                try
                {
                    db.Entry(book).State = EntityState.Added;

                    /* Save changes to Bookings before BookingDetails, because of
                     * foreign key depencency for BookingId */
                    db.SaveChanges();
                    db.Entry(detail).State = EntityState.Added;
                    db.SaveChanges();

                    /* Put something in TempData, which is cleared after 1 request, so
                     * success message will only display the first time each package is booked,
                     * rather than every time Dashboard/Index is loaded */
                    TempData["PkgMessage2"] = "Package successfully booked!";
                    return(RedirectToAction("Index", "Dashboard"));
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            else
            {
                return(RedirectToAction("Login", "Customer"));
            }
        }
        public List <Models.VerificationMessage> ApplyRule(Models.Package package, Models.Manifest manifest)
        {
            var r = new List <Models.VerificationMessage>();

            try
            {
                var xml = manifest.ManifestDoc;

                if (xml != null)
                {
                    var packages = xml.SelectSingleNode("/dotnetnuke/packages");

                    if (packages == null)
                    {
                        r.Add(new Models.VerificationMessage {
                            Message = "Package manifest must contain a packages node.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("f6bf2243-6c28-49d0-ace7-c140c359b1b9"), Rule = GetType().ToString()
                        });
                    }
                    else
                    {
                        if (!packages.HasChildNodes)
                        {
                            r.Add(new Models.VerificationMessage {
                                Message = "Package manifest must contain a packages node with child nodes.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("a173a46d-ba69-48a6-8405-e1cabb894907"), Rule = GetType().ToString()
                            });
                        }

                        foreach (XmlNode packageNode in packages.ChildNodes)
                        {
                            if (packageNode.Attributes != null && packageNode.Attributes.Count > 0)
                            {
                                var pName = packageNode.Attributes["name"];
                                if (pName == null || string.IsNullOrEmpty(pName.Value))
                                {
                                    r.Add(new Models.VerificationMessage {
                                        Message = "ALL packages in the manifest must have a name.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("402b49aa-3e5b-4e92-92da-4b899a5687fb"), Rule = GetType().ToString()
                                    });
                                }
                                else
                                {
                                    r.Add(new Models.VerificationMessage {
                                        Message = pName.Value, MessageType = Models.MessageTypes.Info, MessageId = new Guid("d40fe32f-ea79-49c3-802c-f7264fb69a2b"), Rule = GetType().ToString()
                                    });
                                }
                                var pType = packageNode.Attributes["type"];
                                if (pType == null || string.IsNullOrEmpty(pType.Value))
                                {
                                    r.Add(new Models.VerificationMessage {
                                        Message = "ALL packages in the manifest must have a type.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("5c6ec9ea-498c-436a-892b-a3f7209b8f51"), Rule = GetType().ToString()
                                    });
                                }
                                else
                                {
                                    r.Add(new Models.VerificationMessage {
                                        Message = pType.Value, MessageType = Models.MessageTypes.Info, MessageId = new Guid("feaf4309-3ef3-4278-b610-b1f78fe3c6a9"), Rule = GetType().ToString()
                                    });
                                }
                                var pVersion = packageNode.Attributes["version"];
                                if (pVersion == null || string.IsNullOrEmpty(pVersion.Value))
                                {
                                    r.Add(new Models.VerificationMessage {
                                        Message = "ALL packages in the manifest must have a version.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("d67ea510-1dc0-468f-85b6-3f75212814b5"), Rule = GetType().ToString()
                                    });
                                }
                                else
                                {
                                    r.Add(new Models.VerificationMessage {
                                        Message = pVersion.Value, MessageType = Models.MessageTypes.Info, MessageId = new Guid("07e29bf3-5816-4e1c-a9e8-7a05ee02a0f0"), Rule = GetType().ToString()
                                    });
                                }
                            }

                            var friendlyNameNode = packageNode.SelectSingleNode("friendlyName");
                            if (friendlyNameNode == null || string.IsNullOrEmpty(friendlyNameNode.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL packages in the manifest must have a friendly name.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("d6d6dcaf-a5a2-486a-bb30-983b39528ed0"), Rule = GetType().ToString()
                                });
                            }
                            else
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = friendlyNameNode.InnerText, MessageType = Models.MessageTypes.Info, MessageId = new Guid("671b6736-b686-485b-a269-7be54180517e"), Rule = GetType().ToString()
                                });
                            }

                            var descriptionNode = packageNode.SelectSingleNode("description");
                            if (descriptionNode == null || string.IsNullOrEmpty(descriptionNode.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL packages in the manifest must have a description.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("efce2ed8-9748-493b-839d-7c6e370b88dc"), Rule = GetType().ToString()
                                });
                            }
                            else
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = descriptionNode.InnerText, MessageType = Models.MessageTypes.Info, MessageId = new Guid("93959db4-b7b0-4917-bb76-465173b9dd2b"), Rule = GetType().ToString()
                                });
                            }

                            var ownerNode = packageNode.SelectSingleNode("owner");
                            if (ownerNode == null || string.IsNullOrEmpty(ownerNode.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL packages in the manifest must have an owner.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("312001e5-166c-46f7-9f40-4641823d3c8c"), Rule = GetType().ToString()
                                });
                            }
                            else
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = ownerNode.InnerText, MessageType = Models.MessageTypes.Info, MessageId = new Guid("9ba9bb5e-9d4c-4b7a-8bcb-166dd468ed2d"), Rule = GetType().ToString()
                                });
                            }

                            if (manifest.ManifestVersion() >= 5.0)
                            {
                                var licenseNode = packageNode.SelectSingleNode("license");
                                if (licenseNode != null)
                                {
                                    if (licenseNode.Attributes != null && licenseNode.Attributes.Count > 0)
                                    {
                                        var licenseSrc = licenseNode.Attributes["src"];
                                        if (licenseSrc != null && !string.IsNullOrEmpty(licenseSrc.Value))
                                        {
                                            var path         = package.ExtractedPath;
                                            var fullFilePath = Path.Combine(path, licenseSrc.Value);

                                            manifest.Files.Add(fullFilePath.ToLower());
                                        }
                                        else
                                        {
                                            r.Add(new Models.VerificationMessage {
                                                Message = "The license node src attribute needs to have a value specified", MessageType = Models.MessageTypes.Error, MessageId = new Guid("2376cd6a-ace0-4210-b39f-0b2c20c1506a"), Rule = GetType().ToString()
                                            });
                                        }
                                    }
                                    else
                                    {
                                        if (string.IsNullOrEmpty(licenseNode.InnerText))
                                        {
                                            r.Add(new Models.VerificationMessage {
                                                Message = "The license node needs to have a src attribute or license should be specified in the license node inner text.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("d9099897-f8ec-4af3-a922-859c56a9352e"), Rule = GetType().ToString()
                                            });
                                        }
                                    }
                                }
                                else
                                {
                                    r.Add(new Models.VerificationMessage {
                                        Message = "The package should have a license node", MessageType = Models.MessageTypes.Error, MessageId = new Guid("f9255105-a561-4e43-ac4b-af177fb7da10"), Rule = GetType().ToString()
                                    });
                                }

                                var releaseNotesNode = packageNode.SelectSingleNode("releaseNotes");
                                if (releaseNotesNode != null)
                                {
                                    if (releaseNotesNode.Attributes != null && releaseNotesNode.Attributes.Count > 0)
                                    {
                                        var releaseNotesSrc = releaseNotesNode.Attributes["src"];
                                        if (releaseNotesSrc != null && !string.IsNullOrEmpty(releaseNotesSrc.Value))
                                        {
                                            var path         = package.ExtractedPath;
                                            var fullFilePath = Path.Combine(path, releaseNotesSrc.Value);

                                            manifest.Files.Add(fullFilePath.ToLower());
                                        }
                                        else
                                        {
                                            r.Add(new Models.VerificationMessage {
                                                Message = "The releaseNotes node src attribute needs to have a value specified", MessageType = Models.MessageTypes.Error, MessageId = new Guid("e9ac7c38-808e-4300-b749-3c2ba453eb0a"), Rule = GetType().ToString()
                                            });
                                        }
                                    }
                                    else
                                    {
                                        if (string.IsNullOrEmpty(releaseNotesNode.InnerText))
                                        {
                                            r.Add(new Models.VerificationMessage {
                                                Message = "The releaseNotes node needs to have a src attribute or license should be specified in the license node inner text.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("c50278f4-6461-4fe8-873c-b8ec2587135d"), Rule = GetType().ToString()
                                            });
                                        }
                                    }
                                }
                                else
                                {
                                    r.Add(new Models.VerificationMessage {
                                        Message = "The package should have a releaseNotes node", MessageType = Models.MessageTypes.Error, MessageId = new Guid("f0f247a7-ae02-4187-a4a4-e598421e6fd6"), Rule = GetType().ToString()
                                    });
                                }

                                var azureCompatibleNode = packageNode.SelectSingleNode("azureCompatible");
                                if (azureCompatibleNode != null)
                                {
                                    manifest.HasAzureCompatibleTag = true;

                                    if (!string.IsNullOrEmpty(azureCompatibleNode.InnerText) && azureCompatibleNode.InnerText.ToLower() == "true")
                                    {
                                        manifest.TaggedAzureCompatible = true;
                                    }
                                }

                                var dependenciesNode   = packageNode.SelectSingleNode("dependencies");
                                var dependencyNodeList = dependenciesNode?.SelectNodes("dependency");
                                if (dependencyNodeList != null)
                                {
                                    foreach (XmlNode dependencyNode in dependencyNodeList)
                                    {
                                        var dependencyNodeType = dependencyNode.Attributes["type"];
                                        if (dependencyNodeType != null && !string.IsNullOrEmpty(dependencyNodeType.Value))
                                        {
                                            if (dependencyNodeType.Value.ToLower() == "coreversion")
                                            {
                                                package.CoreVersionDependency = dependencyNode.InnerText;
                                            }
                                        }
                                    }
                                }
                            }

                            var componentsNode = packageNode.SelectSingleNode("components");
                            if (componentsNode == null || !componentsNode.HasChildNodes)
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL packages in the manifest must have a list of components.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("996a7832-9ca6-4123-85e7-75efc1d1d57a"), Rule = GetType().ToString()
                                });
                            }
                        }
                    }
                }
            }
            catch (Exception exc)
            {
                Trace.WriteLine("There was an issue with the SQL Azure scanner", exc.Message);
                r.Add(new Models.VerificationMessage {
                    Message = "Package manifest must be properly formatted XML.", MessageType = Models.MessageTypes.SystemError, MessageId = new Guid("5a1585c5-1c08-49b3-885b-6a02f4c59bfa"), Rule = GetType().ToString()
                });
            }
            return(r);
        }
示例#28
0
        protected override bool Execute(UploadPackageData data, FormSubmitContext formSubmitContext)
        {
            try
            {
                Assert.ArgumentNotNull(data, nameof(data));
                Assert.ArgumentNotNull(formSubmitContext, nameof(formSubmitContext));

                // Initialize services
                _contentRepository = (IContentRepository)DependencyResolver.Current.GetService(typeof(IContentRepository));
                _contextRepository = (IContextRepository)DependencyResolver.Current.GetService(typeof(IContextRepository));
                _logRepository     = (ILogRepository)DependencyResolver.Current.GetService(typeof(ILogRepository));

                var fields = GetFormFields(data, formSubmitContext);

                Assert.IsNotNull(fields, nameof(fields));

                var values = fields.GetFieldValues();

                // Check if logo uploaded
                if (string.IsNullOrEmpty(values.File))
                {
                    SubmitActionData.ErrorMessage = Translate.Text("FileUploadRequired");
                    return(false);
                }

                //TODO: Get Id from settings Item or web config.
                var parentItem = _contentRepository.GetItem <IPackagesFolder>(
                    new GetItemByPathOptions()
                {
                    Path = "/sitecore/content/KATSU/Global/Packages Data"
                });

                // Get logo image
                var packageFile = GetFile(values.File);

                var mediaItem = AddFile(packageFile, @"/sitecore/media library/Project/KATSU/Packages/" + values.PackageName,
                                        values.PackageName);

                // New Entity
                var newItem = new Models.Package
                {
                    Name              = values.PackageName,
                    PackageName       = values.PackageName,
                    PackageIdentifier = values.PackageIdentifier,
                    PackageFile       = new Glass.Mapper.Sc.Fields.File()
                    {
                        Id = new Guid(mediaItem.ID.ToString()), Src = mediaItem.MediaPath
                    },
                };


                var createOptions = new CreateByModelOptions
                {
                    Parent = parentItem,
                    Model  = newItem
                };

                using (new SecurityDisabler())
                {
                    try
                    {
                        _contentRepository.CreateItem <Models.Package>(createOptions);

                        // Set item to draft state
                        //var item = _contentRepository.GetItem<Item>(new GetItemByIdOptions
                        //{ Id = newItem.Id, Language = LanguageManager.GetLanguage("en") });
                        //_workflowEngine.ChangeWorkflowState(item, Settings.Workflows.GovernmentEntityApproval,
                        //    WorkflowStates.Draft);
                    }
                    catch (Exception ex)
                    {
                        SubmitActionData.ErrorMessage = ex.Message;
                        return(false);
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                SubmitActionData.ErrorMessage = Translate.Text("ServerError");
                _logRepository.Error(ex.Message);
                return(false);
            }
        }
示例#29
0
        public List <Models.VerificationMessage> ApplyRule(Models.Package package, Models.Manifest manifest)
        {
            var r = new List <Models.VerificationMessage>();

            try
            {
                if (manifest.ComponentNodes == null)
                {
                    return(r);
                }
                foreach (XmlNode componentNode in manifest.ComponentNodes)
                {
                    if (componentNode.Attributes == null)
                    {
                        continue;
                    }

                    var type = componentNode.Attributes["type"];
                    if (type == null || string.IsNullOrEmpty(type.Value))
                    {
                        continue;
                    }

                    if (type.Value != "Cleanup")
                    {
                        continue;
                    }

                    var path    = package.ExtractedPath;
                    var version = componentNode.Attributes["version"];
                    if (version == null || string.IsNullOrEmpty(version.Value))
                    {
                        r.Add(new Models.VerificationMessage {
                            Message = "Each component node with the type of 'Cleanup' must have a version attribute.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("cd88ea76-d98f-4d42-9c5a-4deb6dcf6030"), Rule = GetType().ToString()
                        });
                    }

                    var strFileName = "";

                    var fileName = componentNode.Attributes["fileName"];
                    if (fileName != null && !string.IsNullOrEmpty(fileName.Value))
                    {
                        strFileName = fileName.Value;

                        if (strFileName != "")
                        {
                            var fullFilePath = System.IO.Path.Combine(path, strFileName);
                            manifest.Files.Add(fullFilePath.ToLower());
                        }
                    }
                    else
                    {
                        var cleanupFilesNode = componentNode.SelectSingleNode("files");

                        if (cleanupFilesNode != null)
                        {
                            var clanupFilesBasePath = cleanupFilesNode.SelectSingleNode("basePath");
                            if (clanupFilesBasePath == null || string.IsNullOrEmpty(clanupFilesBasePath.InnerText))
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "ALL files nodes should have a basePath specified.", MessageType = Models.MessageTypes.Warning, MessageId = new Guid("0621ac6e-fbc2-4459-b7c5-b849401b36b2"), Rule = GetType().ToString()
                                });
                            }

                            var cleanupFileNodes = componentNode.SelectNodes("file");
                            if (cleanupFileNodes != null)
                            {
                                foreach (XmlNode cleanupFileNode in cleanupFileNodes)
                                {
                                    var nameNode = cleanupFileNode.SelectSingleNode("name");
                                    if (nameNode == null || string.IsNullOrEmpty(nameNode.Value))
                                    {
                                        r.Add(new Models.VerificationMessage {
                                            Message = "Each file node must have a 'name' node with in it.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("2feeaa18-6332-4092-bbff-24a792b52294"), Rule = GetType().ToString()
                                        });
                                    }
                                }
                            }
                            else
                            {
                                r.Add(new Models.VerificationMessage {
                                    Message = "Each files node must have a at least one file node within it.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("3ce59978-ca73-4f77-97d7-aef5bd65f09e"), Rule = GetType().ToString()
                                });
                            }
                        }
                        else
                        {
                            r.Add(new Models.VerificationMessage {
                                Message = "Each component node with the type of 'Cleanup' must have a fileName attribute or a 'files' child node.", MessageType = Models.MessageTypes.Error, MessageId = new Guid("b79b60f5-1fce-4cdc-b1a1-c6abc3ef82e9"), Rule = GetType().ToString()
                            });
                        }
                    }
                }
            }
            catch (Exception exc)
            {
                Trace.WriteLine("There was an issue with the cleanup node scanner", exc.Message);
                r.Add(new Models.VerificationMessage {
                    Message = "An Error occurred while processing Rules.Manifest.Components.CleanupNode", MessageType = Models.MessageTypes.SystemError, MessageId = new Guid("1ab5a0a2-e7c0-41d7-89f2-44395df784f9"), Rule = GetType().ToString()
                });
            }

            return(r);
        }