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); }
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 })); }
public ActionResult UpdatePackage(int a) { Package p = new Models.Package(); p.P_ID = a; p.Search(); return(View(p)); }
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)); }
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."); }
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")); }
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); }
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(); }
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); }
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); }
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)); }
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; }
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")); } }
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); }
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); }
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); }
public ActionResult DetailsPackages(int a) { Package p = new Models.Package(); return(View(p.packagebyappointment(a))); }
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)); } }
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); }
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); }
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); }
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); } }
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); }