Ejemplo n.º 1
0
 public ShoppingCartModel(SettingGroup paypalPurchaseSettings, string viewType, StaticProperty shippingMethods)
 {
     PaypalPurchaseSettings  = paypalPurchaseSettings;
     ShippingMethods         = shippingMethods;
     ShoppingCartProductList = SiteContext.ShoppingCartProductList;
     ViewType = viewType;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Called to send the emails whenever a new order is processed.
        /// </summary>
        /// <param name="settingGroupList"></param>
        /// <param name="paypalPurchaseOrder"></param>
        public static void SendNewEcommerceOrderEmails(List <SettingGroup> settingGroupList, PurchaseOrderDetails paypalPurchaseOrder)
        {
            try
            {
                SettingGroup EmailSettings = settingGroupList.Where(e => e.GroupKey.Equals(SettingGroupKeys.EMAIL_SETTINGS)).FirstOrDefault();

                SettingGroup TemplateSettings = settingGroupList.Where(e => e.GroupKey.Equals(SettingGroupKeys.TEMPLATE_CUSTOM_SETTINGS)).FirstOrDefault();

                List <AdminUser> AdminUserList = new List <AdminUser>();

                try
                {
                    if (!string.IsNullOrWhiteSpace(EmailSettings.GetSettingVal(EmailSettingKeys.NewOrderEmailAdminUsers)))
                    {
                        AdminUserList = AdminUserDAO.LoadByMultipleIds(EmailSettings.GetSettingVal(EmailSettingKeys.NewOrderEmailAdminUsers).Split(',').ToList());
                    }
                }
                catch (Exception e)
                {
                    //do nothing, just in case the setting got jacked up somehow we still want to send the customer's email.
                }

                Chimera.Emails.Ecommerce.SendNewEcommerceOrderEmails(AdminUserList, paypalPurchaseOrder, EmailSettings.GetSettingVal(EmailSettingKeys.CustomerOrderFinishedEmail), EmailSettings.GetSettingVal(EmailSettingKeys.SenderEmailAddress), TemplateSettings.GetSettingVal("WebsiteTitle"));
            }
            catch (Exception e)
            {
                CompanyCommons.Logging.WriteLog("Chimera.Core.PurchaseOrders.Email.SendNewEcommerceOrderEmails()" + e.Message);
            }
        }
Ejemplo n.º 3
0
        public ActionResult EditSchema(string id, string settingGroupData)
        {
            try
            {
                SettingGroup SettingGroup = new SettingGroup();

                if (!string.IsNullOrWhiteSpace(id))
                {
                    SettingGroup = SettingGroupDAO.LoadSettingGroupById(id);
                }
                else if (string.IsNullOrWhiteSpace(settingGroupData))
                {
                    //add an empty setting for new setting groups
                    SettingGroup.SettingsList.Add(new Setting());
                }
                else
                {
                    SettingGroup = JsonConvert.DeserializeObject <SettingGroup>(settingGroupData);
                }

                ViewBag.SettingGroup          = SettingGroup;
                ViewBag.StaticPropertyKeyList = StaticPropertyDAO.LoadAllKeyNames();
            }
            catch (Exception e)
            {
                CompanyCommons.Logging.WriteLog("ChimeraWebsite.Areas.Admin.Controllers.SettingsController.EditSchema() " + e.Message);
            }

            return(View());
        }
        /// <summary>
        /// View the product
        /// </summary>
        /// <returns></returns>
        public ActionResult Details(string id)
        {
            try
            {
                Product Prod = ProductDAO.LoadByBsonId(id);

                try
                {
                    if (Prod != null && !string.IsNullOrWhiteSpace(Prod.Name))
                    {
                        ChimeraWebsite.Helpers.SiteContext.RecordPageView("Ecommerce_ViewProduct=" + Prod.Name);
                    }
                }
                catch (Exception e)
                {
                    CompanyCommons.Logging.WriteLog("ChimeraWebsite.Controllers.ViewProduct.Details.RecordPageVisit()", e);
                }

                SettingGroup EcommerceSettings = SettingGroupDAO.LoadSettingGroupByName(SettingGroupKeys.ECOMMERCE_SETTINGS);

                ViewBag.ProductModel = new ProductModel(EcommerceSettings.GetSettingVal(ECommerceSettingKeys.ViewProductDetailPage), Prod);

                return(View("Details", String.Format("~/Templates/{0}/Views/Shared/Template.Master", Models.ChimeraTemplate.TemplateName)));
            }
            catch (Exception e)
            {
                CompanyCommons.Logging.WriteLog("ChimeraWebsite.Controllers.ViewProductController.Details() " + e.Message);
            }

            //TODO: return 404 page instead?
            return(RedirectToAction("Index", "Home"));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// After a new purchase order is final and saved, we need to substract the stock levels from the actual product.
        /// </summary>
        /// <param name="purchOrder"></param>
        public static void ProcessNewOrderStockLevels(SettingGroup paypalSettings, PurchaseOrderDetails purchOrder)
        {
            try
            {
                if (purchOrder != null && purchOrder.PurchasedProductList != null && purchOrder.PurchasedProductList.Count > 0)
                {
                    foreach (var PurchProd in purchOrder.PurchasedProductList)
                    {
                        Product Prod = ProductDAO.LoadByBsonId(PurchProd.Id);

                        if (Prod != null)
                        {
                            Prod.UpdateStock(PurchProd);

                            ProductDAO.Save(Prod);

                            Chimera.Core.Notifications.ProductStock.ProcessPurchasedProduct(paypalSettings, Prod);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                CompanyCommons.Logging.WriteLog("Chimera.Core.PurchaseOrders.ProductStock.ProcessNewOrderStockLevels()" + e.Message);
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Creates the XML file.
        /// </summary>
        static void CreateXMLFile()
        {
            List <SettingGroup> settingGroups = new List <SettingGroup>();
            List <Setting>      settings1     = new List <Setting>();
            List <Setting>      settings2     = new List <Setting>();

            Setting s1 = new Setting();
            Setting s2 = new Setting();

            s1.Key   = "CRM";
            s1.Value = "Url=https://xxxyyyzzz.crm4.dynamics.com; Username=333; Password=444;";
            s2.Key   = "SQL";
            s2.Value = "Server=Your_Server_Name; Database=Your_Database_Name; Trusted_Connection=yes;";

            settings1.Add(s1);
            settings1.Add(s2);

            Setting s3 = new Setting();
            Setting s4 = new Setting();
            Setting s5 = new Setting();
            Setting s6 = new Setting();
            Setting s7 = new Setting();

            s3.Key   = "LogLevel";    //<!--Error, Info, All-->
            s3.Value = EnumCarrier.LogLevel.All;
            s4.Key   = "LogLocation"; //<!--CRM, SQL, Text-->
            s4.Value = EnumCarrier.LogLocation.Text;
            s5.Key   = "LogScreen";   //<!--Diagnostic, Console, All-->
            s5.Value = EnumCarrier.LogScreen.All;
            s6.Key   = "LogPath";
            s6.Value = @"C:\Cube\Logs";
            s7.Key   = "OpenOrganizationService";
            s7.Value = true;

            settings2.Add(s3);
            settings2.Add(s4);
            settings2.Add(s5);
            settings2.Add(s6);
            settings2.Add(s7);

            SettingGroup group1 = new SettingGroup();

            group1.GroupName = "Connections";

            SettingGroup group2 = new SettingGroup();

            group2.GroupName = "GlobalSettings";

            group1.Settings = settings1;
            group2.Settings = settings2;

            settingGroups.Add(group1);
            settingGroups.Add(group2);

            Serialize(settingGroups);
        }
        public override async Task <bool> Set(SettingGroup settingGroup, Values values)
        {
            foreach ((Setting setting, object?value) in values)
            {
                SystemSettingItem settingItem = this.GetSettingItem(setting.Name);
                await settingItem.SetValue(value);
            }

            return(true);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Get the necessary paypal API auth header from our setting group.
        /// </summary>
        /// <param name="paypalSettingGroup"></param>
        /// <returns></returns>
        public static AuthHeader GetAuthHeaderFromSetting(SettingGroup paypalSettingGroup)
        {
            AuthHeader PayPalAuthHeader = new AuthHeader();

            PayPalAuthHeader.BaseApiURL = paypalSettingGroup.GetSettingVal(PayPalSettingKeys.PayPal_API);
            PayPalAuthHeader.Username   = paypalSettingGroup.GetSettingVal(PayPalSettingKeys.PayPal_Username);
            PayPalAuthHeader.Password   = paypalSettingGroup.GetSettingVal(PayPalSettingKeys.PayPal_Password);
            PayPalAuthHeader.Signature  = paypalSettingGroup.GetSettingVal(PayPalSettingKeys.PayPal_Signature);

            return(PayPalAuthHeader);
        }
Ejemplo n.º 9
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void getConfigOptions()
        internal virtual void getConfigOptions()
        {
            IDictionary <string, string> config = stringMap(TestConfig.integer.name(), "123", [email protected](), "bah", TestConfig.oldString.name(), "moo", TestConfig.dynamic.name(), "foo");

            TestConfig testSettings = new TestConfig();

            IList <ConfigOptions> options = testSettings.ConfigOptions;

            assertEquals(4, options.Count);

//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: org.neo4j.graphdb.config.SettingGroup<?> integerSetting = options.get(0).settingGroup();
            SettingGroup <object> integerSetting = options[0].SettingGroup();

            assertEquals(1, integerSetting.Values(emptyMap())[TestConfig.integer.name()]);
            assertEquals(123, integerSetting.Values(config)[TestConfig.integer.name()]);
            assertEquals(null, integerSetting.Description());
            assertFalse(integerSetting.Deprecated());
            assertFalse(integerSetting.Dynamic());
            assertEquals(null, integerSetting.Replacement());

//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: org.neo4j.graphdb.config.SettingGroup<?> stringSetting = options.get(1).settingGroup();
            SettingGroup <object> stringSetting = options[1].SettingGroup();

            assertEquals("bob", stringSetting.Values(emptyMap())[[email protected]()]);
            assertEquals("bah", stringSetting.Values(config)[[email protected]()]);
            assertEquals("A string setting", stringSetting.Description().get());
            assertFalse(stringSetting.Deprecated());
            assertFalse(stringSetting.Dynamic());
            assertEquals(null, stringSetting.Replacement());

//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: org.neo4j.graphdb.config.SettingGroup<?> oldStringSetting = options.get(2).settingGroup();
            SettingGroup <object> oldStringSetting = options[2].SettingGroup();

            assertEquals("tim", oldStringSetting.Values(emptyMap())[TestConfig.oldString.name()]);
            assertEquals("moo", oldStringSetting.Values(config)[TestConfig.oldString.name()]);
            assertEquals("A deprecated string setting", oldStringSetting.Description().get());
            assertTrue(oldStringSetting.Deprecated());
            assertFalse(oldStringSetting.Dynamic());
            assertEquals([email protected](), oldStringSetting.Replacement().get());

//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: org.neo4j.graphdb.config.SettingGroup<?> dynamicSetting = options.get(3).settingGroup();
            SettingGroup <object> dynamicSetting = options[3].SettingGroup();

            assertEquals("defaultDynamic", dynamicSetting.Values(emptyMap())[TestConfig.dynamic.name()]);
            assertEquals("foo", dynamicSetting.Values(config)[TestConfig.dynamic.name()]);
            assertEquals("A dynamic string setting", dynamicSetting.Description().get());
            assertFalse(dynamicSetting.Deprecated());
            assertTrue(dynamicSetting.Dynamic());
            assertEquals(null, dynamicSetting.Replacement());
        }
Ejemplo n.º 10
0
        public IViewComponentResult Invoke(SettingGroup parameter)
        {
            var settingInfos = parameter.SettingDefinitions.Select((sd, index) => new SettingHtmlInfo(
                                                                       sd,
                                                                       _localizer["DisplayName:" + sd.Name],
                                                                       _localizer["Description:" + sd.Name],
                                                                       AsyncHelper.RunSync(() => _settingProvider.GetOrNullAsync(sd.Name))
                                                                       ));

            return(View("~/Pages/Components/Default.cshtml", settingInfos));
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Load a single setting group object by its unique group name
        /// </summary>
        /// <param name="groupName"></param>
        /// <returns></returns>
        public static SettingGroup LoadSettingGroupByName(string groupName)
        {
            MongoCollection <SettingGroup> Collection = Execute.GetCollection <SettingGroup>(COLLECTION_NAME);

            SettingGroup SettGroup = (from e in Collection.AsQueryable <SettingGroup>() where e.GroupKey == groupName select e).FirstOrDefault();

            if (SettGroup == null)
            {
                SettGroup = new SettingGroup();
            }

            return(SettGroup);
        }
Ejemplo n.º 12
0
        public override async Task <Values> Get(SettingGroup settingGroup, IEnumerable <Setting> settings)
        {
            Values values = new Values();

            foreach (Setting setting in settings)
            {
                SystemSettingItem settingItem = this.GetSettingItem(setting.Name);
                object?           value       = await settingItem.GetValue();

                values.Add(setting, value);
            }

            return(values);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Get the model for the view cart view
        /// </summary>
        /// <returns></returns>
        private ShoppingCartModel GetModel()
        {
            List <SettingGroup> SettingGroupList = SettingGroupDAO.LoadByMultipleGroupNames(new List <string> {
                SettingGroupKeys.ECOMMERCE_SETTINGS, SettingGroupKeys.PAYPAL_PURCHASE_SETTINGS
            });

            SettingGroup EcommerceSettings = SettingGroupList.Where(e => e.GroupKey.Equals(SettingGroupKeys.ECOMMERCE_SETTINGS)).FirstOrDefault();

            SettingGroup PaypalPurchaseSettings = SettingGroupList.Where(e => e.GroupKey.Equals(SettingGroupKeys.PAYPAL_PURCHASE_SETTINGS)).FirstOrDefault();

            StaticProperty ShippingMethods = StaticPropertyDAO.LoadByKeyName(StaticProperty.SHIPPING_METHOD_PROPERTY_KEY);

            return(new ShoppingCartModel(PaypalPurchaseSettings, EcommerceSettings.GetSettingVal(ECommerceSettingKeys.ViewShoppingCartPage), ShippingMethods));
        }
Ejemplo n.º 14
0
        public ActionResult InitCheckout(string shippingMethod)
        {
            try
            {
                List <ShoppingCartProduct> ShoppingCartList = SiteContext.ShoppingCartProductList;

                SettingGroup PayPalSettings = SettingGroupDAO.LoadSettingGroupByName(SettingGroupKeys.PAYPAL_PURCHASE_SETTINGS);

                //create auth header obj
                AuthHeader PayPalAuthHeader = Chimera.Core.PurchaseOrders.PayPalAuthHeader.GetAuthHeaderFromSetting(PayPalSettings);

                //create authorization obj
                Authorization PayPalAuthorization = new Authorization();

                string BaseWebsiteURL = CM.AppSettings["BaseWebsiteURL"];

                PayPalAuthorization.StoreImageURL   = PayPalSettings.GetSettingVal(PayPalSettingKeys.PayPal_HDRIMG);
                PayPalAuthorization.SuccessOrderURL = BaseWebsiteURL + "Order/PayPalSuccess";
                PayPalAuthorization.CancelOrderURL  = BaseWebsiteURL + "Order/PayPalCancel";

                //create purchase order details obj
                PurchaseOrderDetails PurchaseOrder = new PurchaseOrderDetails(shippingMethod, ShoppingCartList, Helpers.ShippingMethod.GetGlobalShippingMethodDictionary(null, PayPalSettings)[shippingMethod], PayPalSettings.GetSettingVal(PayPalSettingKeys.GlobalTaxAmount));

                //call paypal API to get new order details
                OrderDetails AuthOrderDetails = CompanyCommons.Ecommerce.PayPal.Functions.Execute.Authorization(PayPalAuthHeader, PayPalAuthorization, PurchaseOrder.PayPalOrderDetails, PurchaseOrder.CreatePayPalItemDescriptions());

                if (AuthOrderDetails != null)
                {
                    //store purchase order object into session
                    PurchaseOrder.PayPalOrderDetails = AuthOrderDetails;

                    //add updated info to session
                    SiteContext.PayPalPurchaseOrder = PurchaseOrder;

                    //redirect to paypal
                    return(Redirect(CompanyCommons.Ecommerce.PayPal.Functions.Execute.GetAuthorizationRedirectURL(PayPalSettings.GetSettingVal(PayPalSettingKeys.PayPal_REDIRECT), AuthOrderDetails)));
                }

                //if we got this far the call the paypal's API failed
            }
            catch (Exception e)
            {
                CompanyCommons.Logging.WriteLog("ChimeraWebsite.Controllers.OrderController.InitCheckout() " + e.Message);
            }

            //TODO: return 404 page instead?
            return(RedirectToAction("Index", "Home"));
        }
Ejemplo n.º 15
0
        public ActionResult EditSchema_Post(string settingGroupData)
        {
            try
            {
                SettingGroup SettingGroup = JsonConvert.DeserializeObject <SettingGroup>(settingGroupData);

                List <WebUserMessage> ErrorList = SettingGroup.Validate();

                //if passed validation
                if (ErrorList == null || ErrorList.Count == 0)
                {
                    //remove data entry property key if data entry does not require just to be safe
                    foreach (var Sett in SettingGroup.SettingsList)
                    {
                        if (!DataEntryTypeProperty.DataTypesRequireProperties.Contains(Sett.EntryType))
                        {
                            Sett.DataEntryStaticPropertyKey = string.Empty;
                        }
                    }

                    if (SettingGroupDAO.Save(SettingGroup))
                    {
                        AddWebUserMessageToSession(Request, String.Format("Successfully saved/updated setting group \"{0}\"", SettingGroup.GroupKey), SUCCESS_MESSAGE_TYPE);
                    }
                    else
                    {
                        AddWebUserMessageToSession(Request, String.Format("Unable to saved/update setting group \"{0}\" at this time", SettingGroup.GroupKey), FAILED_MESSAGE_TYPE);
                    }
                }
                //failed validation
                else
                {
                    AddWebUserMessageToSession(Request, ErrorList);

                    return(RedirectToAction("EditSchema", "Settings", new { settingGroupData = settingGroupData }));
                }

                return(RedirectToAction("Index", "Dashboard"));
            }
            catch (Exception e)
            {
                CompanyCommons.Logging.WriteLog("ChimeraWebsite.Areas.Admin.Controllers.SettingsController.EditSchema_Post() " + e.Message);
            }

            AddWebUserMessageToSession(Request, String.Format("Unable to save/update setting schemas at this time."), FAILED_MESSAGE_TYPE);

            return(RedirectToAction("Index", "Dashboard"));
        }
Ejemplo n.º 16
0
        public void ProcessFile()
        {
            XmlDocument XmlDoc = new XmlDocument();

            XmlDoc.Load(FilePath);

            foreach (var Node in XmlDoc.DocumentElement.GetElementsByTagName("SettingGroup"))
            {
                XmlElement Element = (XmlElement)Node;

                SettingGroup SetGroup = new SettingGroup();

                SetGroup.GroupKey         = Element.GetElementsByTagName("GroupKey")[0].InnerText;
                SetGroup.UserFriendlyName = Element.GetElementsByTagName("UserFriendlyName")[0].InnerText;
                SetGroup.Description      = Element.GetElementsByTagName("Description")[0].InnerText;
                SetGroup.ParentCategory   = (ParentCategoryType)Enum.Parse(typeof(ParentCategoryType), Element.GetElementsByTagName("ParentCategory")[0].InnerText);

                foreach (var ChildNode in Element.GetElementsByTagName("Setting"))
                {
                    XmlElement ChildElement = (XmlElement)ChildNode;

                    Setting Sett = new Setting();

                    Sett.Key = ChildElement.GetElementsByTagName("Key")[0].InnerText;
                    Sett.UserFriendlyName           = ChildElement.GetElementsByTagName("UserFriendlyName")[0].InnerText;
                    Sett.Description                = ChildElement.GetElementsByTagName("Description")[0].InnerText;
                    Sett.Value                      = ChildElement.GetElementsByTagName("Value")[0].InnerText;
                    Sett.EntryType                  = (DataEntryType)Enum.Parse(typeof(DataEntryType), ChildElement.GetElementsByTagName("EntryType")[0].InnerText);
                    Sett.DataEntryStaticPropertyKey = ChildElement.GetElementsByTagName("DataEntryStaticPropertyKey")[0].InnerText;

                    foreach (var ChildChildNode in ChildElement.GetElementsByTagName("SettingAttribute"))
                    {
                        XmlElement ChildChildElement = (XmlElement)ChildChildNode;

                        SettingAttribute SetAttr = new SettingAttribute();

                        SetAttr.Key   = ChildChildElement.GetElementsByTagName("Key")[0].InnerText;
                        SetAttr.Value = ChildChildElement.GetElementsByTagName("Value")[0].InnerText;

                        Sett.SettingAttributeList.Add(SetAttr);
                    }

                    SetGroup.SettingsList.Add(Sett);
                }

                SettingGroupDAO.Save(SetGroup);
            }
        }
Ejemplo n.º 17
0
        public override async Task <bool> Set(SettingGroup settingGroup, Values values)
        {
            IniFileWriter writer = this.serviceProvider.GetService <IniFileWriter>();

            writer.SetFile(settingGroup.Path);
            Dictionary <string, string?> iniData = new Dictionary <string, string?>();

            foreach ((Setting setting, object?value) in values)
            {
                iniData[setting.Name] = value?.ToString();
            }

            await writer.Write(iniData).Save();

            return(true);
        }
Ejemplo n.º 18
0
        // initialization
        private void Init()
        {
            settings = new SettingGroup("Audio Spectrum Settings", "");

            selectedDevice = new Setting("Selected Device", "", SettingControl.Dropdown, SettingType.Text, "");
            selectedDevice.configuration["options"] = new List <string>();
            settings.settings.Add(selectedDevice);

            channelCount = new Setting("Channels", "", SettingControl.Numeric, SettingType.Integer, 8);
            channelCount.configuration["interval"] = 1;
            settings.settings.Add(channelCount);

            bool result = false;

            Bass.BASS_SetConfig(BASSConfig.BASS_CONFIG_UPDATETHREADS, false);
            result = Bass.BASS_Init(0, 44100, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero);

            if (!result)
            {
                throw new Exception("Init Error");
            }

            for (int i = 0; i < BassWasapi.BASS_WASAPI_GetDeviceCount(); i++)
            {
                var device = BassWasapi.BASS_WASAPI_GetDeviceInfo(i);
                if (device.IsEnabled && device.IsLoopback)
                {
                    //AudioSpectrumDevice audioDevice = new AudioSpectrumDevice(device,i);
                    //this.Devices.Add(audioDevice);
                    selectedDevice.configuration["options"].Add(string.Format("{0} - {1}", i, device.name));
                }
                //Console.WriteLine(string.Format("{0} - {1}", i, device.name));
            }
            settings.loadSettings();
            if (!string.IsNullOrWhiteSpace(selectedDevice.settingValue))
            {
                var str      = (selectedDevice.settingValue as string);
                var array    = str.Split(' ');
                int devindex = Convert.ToInt32(array[0]);

                var myDevice = BassWasapi.BASS_WASAPI_GetDeviceInfo(devindex);
                AudioSpectrumDevice audioDevice = new AudioSpectrumDevice(myDevice, devindex, (int)Math.Floor((double)channelCount.settingValue));
                this.Devices.Add(audioDevice);
            }
            selectedDevice.PropertyChanged += SelectedDevice_PropertyChanged;
        }
Ejemplo n.º 19
0
        public ActionResult ShipOrder(string id, string trackingNumber)
        {
            try
            {
                PurchaseOrderDetails PurchaseOrderDetail = PurchaseOrderDetailsDAO.LoadByBsonId(id);

                PurchaseOrderDetail.PayPalOrderDetails.ShippingTrackingNumber = trackingNumber;
                PurchaseOrderDetail.PayPalOrderDetails.OrderShippedDateUtc    = DateTime.UtcNow;

                if (PurchaseOrderDetailsDAO.Save(PurchaseOrderDetail))
                {
                    Chimera.Core.Notifications.PurchaseOrder.ProcessPurchaseOrderShipped(PurchaseOrderDetail);

                    try
                    {
                        List <SettingGroup> SettingGroupList = SettingGroupDAO.LoadByMultipleGroupNames(new List <string> {
                            SettingGroupKeys.TEMPLATE_CUSTOM_SETTINGS, SettingGroupKeys.EMAIL_SETTINGS
                        });

                        SettingGroup EmailSettings = SettingGroupList.Where(e => e.GroupKey.Equals(SettingGroupKeys.EMAIL_SETTINGS)).FirstOrDefault();

                        SettingGroup TemplateSettings = SettingGroupList.Where(e => e.GroupKey.Equals(SettingGroupKeys.TEMPLATE_CUSTOM_SETTINGS)).FirstOrDefault();

                        Chimera.Emails.Ecommerce.SendOrderShippedEmail(PurchaseOrderDetail, EmailSettings.GetSettingVal(EmailSettingKeys.CustomerOrderShippedEmail), EmailSettings.GetSettingVal(EmailSettingKeys.SenderEmailAddress), TemplateSettings.GetSettingVal("WebsiteTitle"));
                    }
                    catch (Exception e)
                    {
                        CompanyCommons.Logging.WriteLog("ChimeraWebsite.Areas.Admin.Controllers.PurchaseOrdersController.ShipOrder.SendEmail()" + e.Message);
                    }

                    AddWebUserMessageToSession(Request, String.Format("Tracking # added and user notified order shipped!"), SUCCESS_MESSAGE_TYPE);
                }
                else
                {
                    AddWebUserMessageToSession(Request, String.Format("Unable to add tracking # and email user of shipped order."), FAILED_MESSAGE_TYPE);
                }
            }
            catch (Exception e)
            {
                CompanyCommons.Logging.WriteLog("ChimeraWebsite.Areas.Admin.Controllers.PurchaseOrdersController.ShipOrder()" + e.Message);
            }

            return(RedirectToAction("Search", "PurchaseOrders"));
        }
Ejemplo n.º 20
0
        public override Task <Values> Get(SettingGroup settingGroup, IEnumerable <Setting> settings)
        {
            IniFileReader reader = this.serviceProvider.GetRequiredService <IniFileReader>();

            reader.SetFile(settingGroup.Path);

            Values values = new Values();
            Dictionary <string, string> data = reader.ReadData();

            foreach (Setting setting in settings)
            {
                if (data.TryGetValue(setting.Name, out string?value))
                {
                    values.Add(setting, value);
                }
            }

            return(Task.FromResult(values));
        }
Ejemplo n.º 21
0
        private void LstGroup_SelectedIndexChanged(object sender, EventArgs e)
        {
            SettingGroup settingGroup = (SettingGroup)lstGroup.SelectedIndex;

            pnlGeneral.Visible        = false;
            pnlApiService.Visible     = false;
            pnlComponent.Visible      = false;
            pnlMaterialDialog.Visible = false;
            pnlModel.Visible          = false;
            pnlPage.Visible           = false;
            pnlService.Visible        = false;

            switch (settingGroup)
            {
            case SettingGroup.General:
                pnlGeneral.Visible = true;
                break;

            case SettingGroup.ApiService:
                pnlApiService.Visible = true;
                break;

            case SettingGroup.Component:
                pnlComponent.Visible = true;
                break;

            case SettingGroup.MaterialDialog:
                pnlMaterialDialog.Visible = true;
                break;

            case SettingGroup.Model:
                pnlModel.Visible = true;
                break;

            case SettingGroup.Page:
                pnlPage.Visible = true;
                break;

            case SettingGroup.Service:
                pnlService.Visible = true;
                break;
            }
        }
Ejemplo n.º 22
0
        /// <summary>
        /// User redirected back here from paypal after successfully filling out all the necessary form data from paypal
        /// </summary>
        /// <returns></returns>
        public ActionResult PayPalSuccess()
        {
            try
            {
                if (!string.IsNullOrWhiteSpace(SiteContext.PayPalPurchaseOrder.PayPalOrderDetails.PaypalInfo.Token))
                {
                    SiteContext.RecordPageView("Ecommerce_PayPalSuccess");

                    List <SettingGroup> SettingGroupList = SettingGroupDAO.LoadByMultipleGroupNames(new List <string> {
                        SettingGroupKeys.ECOMMERCE_SETTINGS, SettingGroupKeys.PAYPAL_PURCHASE_SETTINGS
                    });

                    SettingGroup PayPalSettings = SettingGroupList.Where(e => e.GroupKey.Equals(SettingGroupKeys.PAYPAL_PURCHASE_SETTINGS)).FirstOrDefault();

                    //create auth header obj
                    AuthHeader PayPalAuthHeader = Chimera.Core.PurchaseOrders.PayPalAuthHeader.GetAuthHeaderFromSetting(PayPalSettings);

                    PurchaseOrderDetails PayPalPurchaseOrder = SiteContext.PayPalPurchaseOrder;

                    OrderDetails CheckoutOrderDetails = CompanyCommons.Ecommerce.PayPal.Functions.Execute.ExpressCheckout(PayPalAuthHeader, PayPalPurchaseOrder.PayPalOrderDetails);

                    if (CheckoutOrderDetails != null)
                    {
                        PayPalPurchaseOrder.PayPalOrderDetails = CheckoutOrderDetails;

                        SiteContext.PayPalPurchaseOrder = PayPalPurchaseOrder;

                        SettingGroup EcommerceSettings = SettingGroupList.Where(e => e.GroupKey.Equals(SettingGroupKeys.ECOMMERCE_SETTINGS)).FirstOrDefault();

                        ViewBag.PayPalSuccessModel = new PayPalSuccessModel(EcommerceSettings.GetSettingVal(ECommerceSettingKeys.FinalizeCheckoutPage), PayPalPurchaseOrder);

                        return(View("PayPalSuccess", String.Format("~/Templates/{0}/Views/Shared/Template.Master", Models.ChimeraTemplate.TemplateName)));
                    }
                }
            }
            catch (Exception e)
            {
                CompanyCommons.Logging.WriteLog("ChimeraWebsite.Controllers.OrderController.PayPalSuccess() " + e.Message);
            }

            //TODO: return 404 page instead?
            return(RedirectToAction("Index", "Home"));
        }
Ejemplo n.º 23
0
        public SC360_Plugin()
        {
            settings = new SettingGroup("General Settings", "");
            Setting lowLatencyMode = new Setting("Low latency mode", "Extremely low latency and low system overhead, but does not support rumble.", SettingControl.Checkbox, SettingType.Bool, false);

            lowLatencyMode.descriptionVisibility = DescriptionVisibility.SubText;
            settings.settings.Add(lowLatencyMode);

            settings.loadSettings();

            ApplicationMenuItem mymenu = new ApplicationMenuItem("XInput Test");

            mymenu.Clicked += (s, e) => { Process.Start(Global.PluginsDirectory + "\\sc360\\XInputTest.exe"); };
            Global.MainMenu.FirstOrDefault(m => m.Text == "Tools").Items.Add(mymenu);

            SC360Globals.scBus     = new X360Device();
            SC360Globals.PluginRef = this;
            SC360Globals.scBus.Start();
        }
Ejemplo n.º 24
0
 public string CreateGroup(string name = "") {
     try {
         if(name.Trim() == "") {
             throw new Exception("Setting Group must have a name.");
         }
         SettingGroup g = new SettingGroup {
             name = name
         };
         EcommercePlatformDataContext db = new EcommercePlatformDataContext();
         if (db.SettingGroups.Where(x => x.name.ToLower().Trim().Equals(name.Trim().ToLower())).Count() == 0) {
             db.SettingGroups.InsertOnSubmit(g);
             db.SubmitChanges();
         } else {
             throw new Exception("A setting group called " + name + " already exists");
         }
         return JsonConvert.SerializeObject(g);
     } catch (Exception e) {
         return e.Message;
     }
 }
Ejemplo n.º 25
0
        public bool Set(SettingGroup value)
        {
            try
            {
                SettingGroup sg = Get(value.Name);
                if (sg != null)
                {
                    values.Remove(sg);
                }

                values.Add(value);
                value.PropertyChanged += SettingGroupChanged;

                Serialize();
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Ejemplo n.º 26
0
        public ActionResult EditValues(string id)
        {
            try
            {
                SettingGroup SettingGroup = SettingGroupDAO.LoadSettingGroupById(id);

                List <string> StaticPropertyKeys = (from e in SettingGroup.SettingsList.AsQueryable() where DataEntryTypeProperty.DataTypesRequireProperties.Contains(e.EntryType) && !string.IsNullOrWhiteSpace(e.DataEntryStaticPropertyKey) select e.DataEntryStaticPropertyKey).ToList();

                ViewBag.SettingGroup = SettingGroup;

                ViewBag.StaticPropertyList = StaticPropertyKeys != null && StaticPropertyKeys.Count > 0 ?StaticPropertyDAO.LoadByMultipleKeyNames(StaticPropertyKeys) : new List <StaticProperty>();

                ViewBag.ImageList = ImageDAO.LoadAll();
            }
            catch (Exception e)
            {
                CompanyCommons.Logging.WriteLog("ChimeraWebsite.Areas.Admin.Controllers.SettingsController.EditValues() " + e.Message);
            }

            return(View());
        }
Ejemplo n.º 27
0
        public iDualShock4_Plugin()
        {
            //Devices = new AsyncObservableCollection<InputDevice>();

            settings = new SettingGroup("General Settings", "");
            Setting lowLatencyMode = new Setting("Low latency mode", "Extremely low latency and low system overhead, but does not support rumble, trackpad or lightbar.", SettingControl.Checkbox, SettingType.Bool, false);

            lowLatencyMode.descriptionVisibility = DescriptionVisibility.SubText;
            settings.settings.Add(lowLatencyMode);

            Setting connectExclusively = new Setting("Connect Exclusively", "", SettingControl.Checkbox, SettingType.Bool, true);

            connectExclusively.descriptionVisibility = DescriptionVisibility.SubText;
            settings.settings.Add(connectExclusively);

            settings.loadSettings();

            Global.HardwareChangeDetected += Global_HardwareChangeDetected;

            BackupDeviceListener = new Timer(CheckForDevices, null, 10, 3000);
            CheckForDevices();
        }
Ejemplo n.º 28
0
        /// <inheritdoc/>
        public async Task ChangeGroupSetting(SettingGroup input)
        {
            input.Settings.CheckNotNull("input.Settings");
            input.GroupName.CheckNotNull("input.GroupName");

            var groupSettings = _settingRepository.GetAll().Where(p => p.GroupName == input.GroupName);

            foreach (var dto in input.Settings)
            {
                if (groupSettings.Any(p => p.Name == dto.Name))
                {
                    var setting = groupSettings.Single(p => p.Name == dto.Name);
                    setting.Value = dto.Value;
                    await _settingRepository.UpdateAsync(setting);
                }
                else
                {
                    var setting = dto.MapTo <Setting>();
                    await _settingRepository.InsertAsync(setting);
                }
            }
        }
Ejemplo n.º 29
0
        private Settings GetSelectedSettings()
        {
            Settings settings = new Settings();

            foreach (TreeNode gnode in tvSettings.Nodes)
            {
                if ((gnode.Checked) || (NodeChildChecked(gnode)))
                {
                    SettingGroup group = new SettingGroup(gnode.Name);
                    settings.Add(group);
                    foreach (TreeNode node in gnode.Nodes)
                    {
                        if (node.Checked)
                        {
                            Setting s = (Setting)node.Tag;
                            group.Add(s);
                        }
                    }
                }
            }
            return(settings);
        }
Ejemplo n.º 30
0
        public ActionResult EditValues_Post(string id)
        {
            try
            {
                SettingGroup SettingGroup = SettingGroupDAO.LoadSettingGroupById(id);

                foreach (var Sett in SettingGroup.SettingsList)
                {
                    if (!string.IsNullOrWhiteSpace(Request["setting_" + Sett.Key]))
                    {
                        Sett.Value = Request["setting_" + Sett.Key];
                    }
                    else
                    {
                        Sett.Value = string.Empty;
                    }
                }

                if (SettingGroupDAO.Save(SettingGroup))
                {
                    AddWebUserMessageToSession(Request, String.Format("Successfully saved/updated setting group \"{0}\"", SettingGroup.GroupKey), SUCCESS_MESSAGE_TYPE);
                }
                else
                {
                    AddWebUserMessageToSession(Request, String.Format("Unable to saved/update setting group \"{0}\" at this time", SettingGroup.GroupKey), FAILED_MESSAGE_TYPE);
                }

                return(RedirectToAction("Index", "Dashboard"));
            }
            catch (Exception e)
            {
                CompanyCommons.Logging.WriteLog("ChimeraWebsite.Areas.Admin.Controllers.SettingsController.EditValues_Post() " + e.Message);
            }

            AddWebUserMessageToSession(Request, String.Format("Unable to save/update setting values at this time."), FAILED_MESSAGE_TYPE);

            return(RedirectToAction("Index", "Dashboard"));
        }
Ejemplo n.º 31
0
        /// <summary>
        /// Process a purchased product after the stock level has been altered from the purchase order
        /// </summary>
        /// <param name="product"></param>
        /// <returns></returns>
        public static bool ProcessPurchasedProduct(SettingGroup paypalSettings, Product product)
        {
            try
            {
                string StockLevelWarningString = paypalSettings.GetSettingVal(PayPalSettingKeys.StockLevelWarning);

                int StockLevelWarning = Int32.Parse(!string.IsNullOrWhiteSpace(StockLevelWarningString) ? StockLevelWarningString : "0");

                if (product.PurchaseSettings.StockLevel <= StockLevelWarning)
                {
                    Notification NewNotification = GenerateNewNotification(product.Name, product.Id, product.PurchaseSettings.StockLevel);

                    DashboardNotificationDAO.Save(NewNotification);
                }

                if (product.CheckoutPropertySettingsList != null && product.CheckoutPropertySettingsList.Count > 0)
                {
                    foreach (var CheckPropSetting in product.CheckoutPropertySettingsList)
                    {
                        if (CheckPropSetting.PurchaseSettings.StockLevel <= StockLevelWarning)
                        {
                            Notification NewNotification = GenerateNewNotification(product.Name, product.Id, product.PurchaseSettings.StockLevel, CheckPropSetting.CheckoutPropertySettingKeys);

                            DashboardNotificationDAO.Save(NewNotification);
                        }
                    }
                }

                return(true);
            }
            catch (Exception e)
            {
                CompanyCommons.Logging.WriteLog("Chimera.Core.Notifications.ProductStock.ProcessPurchasedProduct()" + e.Message);
            }

            return(false);
        }
Ejemplo n.º 32
0
 public SettingGroup GetOrCreateSettingGroup(string groupName)
 {
     var group = SettingGroups.FirstOrDefault(g => g.Name == groupName);
     if(group == null)
     {
         group = new SettingGroup(groupName);
         SettingGroups.Add(group);
     }
     return group;
 }