Ejemplo n.º 1
0
        /// <summary>
        ///     The Run method is the entry point of a background task.
        /// </summary>
        /// <param name="taskInstance"></param>
        public void Run(IBackgroundTaskInstance taskInstance)
        {
            _appSettingsHelper = new AppSettingsHelper();
            Debug.WriteLine("Background Audio Task " + taskInstance.Task.Name + " starting...");
            // InitializeAsync SMTC object to talk with UVC. 
            //Note that, this is intended to run after app is paused and 
            //hence all the logic must be written to run in background process
            _systemmediatransportcontrol = SystemMediaTransportControls.GetForCurrentView();
            _systemmediatransportcontrol.ButtonPressed += systemmediatransportcontrol_ButtonPressed;
            _systemmediatransportcontrol.PropertyChanged += systemmediatransportcontrol_PropertyChanged;
            _systemmediatransportcontrol.IsEnabled = true;
            _systemmediatransportcontrol.IsPauseEnabled = true;
            _systemmediatransportcontrol.IsPlayEnabled = true;
            _systemmediatransportcontrol.IsNextEnabled = true;
            _systemmediatransportcontrol.IsPreviousEnabled = true;

            // Associate a cancellation and completed handlers with the background task.
            taskInstance.Canceled += OnCanceled;
            taskInstance.Task.Completed += Taskcompleted;

            //Add handlers for MediaPlayer
            BackgroundMediaPlayer.Current.CurrentStateChanged += Current_CurrentStateChanged;

            //Add handlers for playlist trackchanged
            QueueManager.TrackChanged += playList_TrackChanged;
            QueueManager.MatchingTrack += QueueManagerOnMatchingTrack;
            QueueManager.QueueUpdated += QueueManagerOnQueueUpdated;
            QueueManager.FlushHistory();

            //InitializeAsync message channel 
            BackgroundMediaPlayer.MessageReceivedFromForeground += BackgroundMediaPlayer_MessageReceivedFromForeground;

            //Send information to foreground that background task has been started if app is active
            if (ForegroundAppState != ForegroundAppStatus.Suspended)
            {
                var message = new ValueSet {{PlayerConstants.BackgroundTaskStarted, ""}};
                BackgroundMediaPlayer.SendMessageToForeground(message);
            }
            _backgroundTaskStarted.Set();
            _backgroundtaskrunning = true;

            _appSettingsHelper.Write(PlayerConstants.BackgroundTaskState,
                PlayerConstants.BackgroundTaskRunning);
            _deferral = taskInstance.GetDeferral();
        }
        public async Task<List<Multiplex>> LoadMultiplexes()
        {
            var db = new MovieDataService();
            var appSettings = new AppSettingsHelper();
            var lastUpdated = appSettings.DateLastUpdated;
            var result = db.GetMultiplexes();

            if (result.Count == 0 || (DateTime.Now - lastUpdated) > new TimeSpan(0, 0, 10))
            {
                HttpClient client = new HttpClient();
                var response = await client.GetStringAsync(new Uri(MultiplexUri));
                var items = response.ParseMultiplexCollection();
                db.SaveMultiplexes(items);
                appSettings.DateLastUpdated = DateTime.Now;
                result = db.GetMultiplexes();
            }
            return result.OrderBy(x => x.City).ThenBy(y => y.Title).ToList();
        }
        public async Task<List<Movie>> LoadMovies()
        {
            var db = new MovieDataService();
            var appSettings = new AppSettingsHelper();
            var lastUpdated = appSettings.DateLastUpdated;
            var multiplexId = appSettings.MultiplexId;
            var result = db.GetMovies(multiplexId);

            if(result.Count == 0 || (DateTime.Now - lastUpdated) > new TimeSpan(0, 0, 10))
            {
                HttpClient client = new HttpClient();
                var uri = string.Format(MoviesUri, multiplexId);
                var response = await client.GetStringAsync(new Uri(uri));
                var items = response.ParseMovieCollection(multiplexId);
                db.SaveMovies(items, multiplexId);
                appSettings.DateLastUpdated = DateTime.Now;
                result = db.GetMovies(multiplexId);
            }
            return result;
        }
Ejemplo n.º 4
0
        //>>

        //<< Playlist management functions and handlers
        /// <summary>
        /// Start playlist and change UVC state
        /// </summary>
        void StartPlayback()
        {
            try
            {
                if (playbackStartedPreviously)                 // If playback was already started once we can just resume playing.
                {
                    BackgroundMediaPlayer.Current.Play();
                }
                else
                {
                    playbackStartedPreviously = true;

                    var currentTrackId = AppSettingsHelper.ReadVal(ApplicationSettingsConstants.TrackId);                     // If the task was cancelled we would have saved the current track and its position. We will try playback from there.
                    if (currentTrackId == null)
                    {
                        BackgroundMediaPlayer.Current.Play();
                    }
                    else
                    {
                        Debug.WriteLine($"**>Getting {currentTrackId}     from:"); _mpl.Items.ToList().ForEach(r => Debug.WriteLine($"**>        {GetTrackId(r)}"));

                        var index = _mpl.Items.ToList().FindIndex(item => GetTrackId(item).ToString() == (string)currentTrackId);                         // Find the index of the item by name

                        var currentTrackPosition = AppSettingsHelper.ReadVal(ApplicationSettingsConstants.Position);
                        if (currentTrackPosition == null)
                        {
                            Debug.WriteLine("StartPlayback: Switching to track " + index);                             // Play from start if we dont have position
                            _mpl.MoveTo((uint)index);

                            BackgroundMediaPlayer.Current.Play();
                        }
                        else
                        {
                            // Play from exact position otherwise
                            TypedEventHandler <MediaPlaybackList, CurrentMediaPlaybackItemChangedEventArgs> handler = null;
                            handler = (MediaPlaybackList list, CurrentMediaPlaybackItemChangedEventArgs args) =>
                            {
                                if (args.NewItem == _mpl.Items[index])
                                {
                                    // Unsubscribe because this only had to run once for this item
                                    _mpl.CurrentItemChanged -= handler;

                                    // Set position
                                    var position = TimeSpan.Parse((string)currentTrackPosition);
                                    Debug.WriteLine("StartPlayback: Setting Position " + position);
                                    BackgroundMediaPlayer.Current.Position = position;

                                    BackgroundMediaPlayer.Current.Play();
                                }
                            };
                            _mpl.CurrentItemChanged += handler;

                            Debug.WriteLine("StartPlayback: Switching to track " + index);                             // Switch to the track which will trigger an item changed event
                            playbackStartedPreviously = false;
                            _mpl.MoveTo((uint)index);
                            playbackStartedPreviously = true;
                        }
                    }
                }
            }
            catch (Exception ex) { Debug.WriteLine($"$#~>{ex.Message}"); if (Debugger.IsAttached)
                                   {
                                       Debugger.Break();
                                   }                                                                                            /*else throw;*/
                                   MessageService.SendMessageToForeground(new ExceptionCaughtMessage(ex.Message)); }
        }
Ejemplo n.º 5
0
        private SearchCriteria GetSearchCriteria(ProductSearchViewModel productSearchViewModel = null)
        {
            var perPage = AppSettingsHelper.GetSafeValue("ProductsPerPage", 120);
            var pageQs  = Request.QueryString["Page"];
            var page    = (string.IsNullOrEmpty(pageQs) ? "1" : pageQs.Split(',').FirstOrDefault()).AsInt(1);

            if (productSearchViewModel == null)
            {
                productSearchViewModel = new ProductSearchViewModel
                {
                    ResultsPerPage = perPage,
                    CurrentPage    = page,
                    OrderBy        = "alphaasc",
                    SortBy         = "alphaasc",
                    Keywords       = Request.QueryString["keywords"],
                    SearchHandle   = "",
                    SearchTerms    = ""
                };
            }

            var categoryId   = Request["categoryId"];
            var categoryName = Request["categoryName"];
            var productType  = Request["SelectedProductGroups"];
            var brand        = Request["brand"];

            if (!string.IsNullOrEmpty(brand))
            {
                productSearchViewModel.Brand.Add(brand);
            }

            var searchCriteria = new SearchCriteria
            {
                OrderBy        = productSearchViewModel.SortBy ?? "alphaasc",
                SortBy         = productSearchViewModel.SortBy ?? "alphaasc",
                ResultsPerPage = productSearchViewModel.ResultsPerPage,
                CurrentPage    = productSearchViewModel.CurrentPage,
                IsB2B          = B2BCheckoutService.IsB2BUserLoggedIn(HttpContext)
            };

            if (searchCriteria.ResultsPerPage == 0)
            {
                searchCriteria.ResultsPerPage = perPage;
            }

            if (searchCriteria.CurrentPage == 0)
            {
                searchCriteria.CurrentPage = page;
            }

            searchCriteria.DiscreteTerms = productSearchViewModel.Keywords;
            searchCriteria.CustomCriteria.Add("CurrencyId", CommerceContext.Currency.CurrentForPricing.CurrencyId.ToString(CultureInfo.InvariantCulture));
            searchCriteria.CustomCriteria.Add("ShopId", CommerceContext.Shop.CurrentShop.Id.ToString(CultureInfo.InvariantCulture));
            searchCriteria.CustomCriteria.Add("MinPrice", productSearchViewModel.MinPrice);
            searchCriteria.CustomCriteria.Add("MaxPrice", productSearchViewModel.MaxPrice);
            searchCriteria.CustomCriteria.Add("ProductCategoryID", !string.IsNullOrEmpty(categoryId) ? categoryId : productSearchViewModel.SelectedProductGroups.Count > 0 ? productSearchViewModel.SelectedProductGroups[0] : productSearchViewModel.ProductCategory.ToDelimitedString());

            if (!string.IsNullOrEmpty(categoryName))
            {
                searchCriteria.CustomCriteria.Add("ProductCategoryName", categoryName);
            }

            if (!string.IsNullOrEmpty(productType))
            {
                var productGroups = productType.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                if (productGroups.Length > 0)
                {
                    productSearchViewModel.SelectedProductGroups.AddRange(productGroups);
                }
            }
            searchCriteria.CustomCriteria.Add("SearchHandle", productSearchViewModel.SearchHandle);
            searchCriteria.CustomCriteria.Add("searchTerms", productSearchViewModel.SearchTerms);
            searchCriteria.CustomCriteria.Add("Martindale", productSearchViewModel.Martindale);

            var attributeOptions = ToAttributeString(productSearchViewModel.SelectedEndUses,
                                                     productSearchViewModel.SelectedFlameRetardant,
                                                     productSearchViewModel.SelectedType,
                                                     productSearchViewModel.SelectedPatterns,
                                                     productSearchViewModel.SelectedDimOuts,
                                                     productSearchViewModel.SelectedProductGroups,
                                                     productSearchViewModel.SelectedUsage,
                                                     productSearchViewModel.SelectedContractUsage,
                                                     productSearchViewModel.SelectedComposition,
                                                     productSearchViewModel.SelectedFRTreatable,
                                                     productSearchViewModel.SelectedFRTreated,
                                                     productSearchViewModel.SelectedFRInherent,
                                                     productSearchViewModel.SelectedWallpaperTypes,
                                                     productSearchViewModel.SelectedTrimmingTypes,
                                                     productSearchViewModel.SelectedFabricTypes,
                                                     productSearchViewModel.SelectedUpholsteryClothDesignation,
                                                     productSearchViewModel.SelectedWallpaperCareInstructions,
                                                     productSearchViewModel.SelectedFabricCareInstructions,
                                                     productSearchViewModel.SelectedRooms
                                                     );

            var brandAttributeOptions = ToAttributeString(productSearchViewModel.Brand).Replace(",", "|");

            if (attributeOptions.Length > 1)
            {
                searchCriteria.CustomCriteria.Add("Attributes", attributeOptions);
            }

            if (brandAttributeOptions.Length > 1)
            {
                searchCriteria.CustomCriteria.Add("BrandAttributes", brandAttributeOptions);
            }

            if (productSearchViewModel.SelectedColours != null && productSearchViewModel.SelectedColours.Any() &&
                productSearchViewModel.SelectedColours[0].IndexOf(",", StringComparison.Ordinal) > 0)
            {
                productSearchViewModel.SelectedColours = productSearchViewModel.SelectedColours[0].Split(',').ToList();
            }

            searchCriteria.CustomCriteria.Add("ColourCodes", string.Join(",", productSearchViewModel.SelectedColours.ToArray()));

            return(searchCriteria);
        }
Ejemplo n.º 6
0
 public MobileSkinResolver(AppSettingsHelper appSettings)
 {
     appsettings = appSettings;
 }
Ejemplo n.º 7
0
        public bool Initialize()
        {
            Logger.Info($"{new string('=', 64)}");
            Logger.Info("Initializing...");
            PluginLoader.LoadAll($@"{AppDomain.CurrentDomain.BaseDirectory}\Plugins");

            const string key = "config-file";

            if (string.IsNullOrEmpty(AppSettingsHelper.ReadValue(key)))
            {
                AppSettingsHelper.WriteValue(key, "config.json");
            }

            _configManager = new ConfigManager(AppSettingsHelper.ReadValue(key));
            if (!_configManager.LoadOrCreateConfig())
            {
                return(false);
            }

            _cache = new DataCache();

            var alpha           = Math.Exp(-_configManager.CurrentConfig.SensorTimerInterval / (double)_configManager.CurrentConfig.DeviceSpeedTimerInterval);
            var providerFactory = new MovingAverageSensorValueProviderFactory(alpha);
            var sensorConfigs   = _configManager.CurrentConfig.SensorConfigs
                                  .SelectMany(x => x.Sensors.Select(s => (Sensor: s, Config: x.Config)))
                                  .ToDictionary(x => x.Sensor, x => x.Config);

            _sensorManager          = new SensorManager(providerFactory, sensorConfigs);
            _effectManager          = new EffectManager();
            _speedControllerManager = new SpeedControllerManager();
            _deviceManager          = new DeviceManager();

            _sensorManager.EnableSensors(sensorConfigs.Keys);
            foreach (var profile in _configManager.CurrentConfig.Profiles)
            {
                foreach (var effect in profile.Effects)
                {
                    _effectManager.Add(profile.Guid, effect);
                    _sensorManager.EnableSensors(effect.UsedSensors);
                }

                foreach (var speedController in profile.SpeedControllers)
                {
                    _speedControllerManager.Add(profile.Guid, speedController);
                    _sensorManager.EnableSensors(speedController.UsedSensors);
                }
            }

            foreach (var sensor in _sensorManager.EnabledSensors)
            {
                _cache.StoreSensorConfig(sensor, SensorConfig.Default);
            }

            foreach (var controller in _deviceManager.Controllers)
            {
                foreach (var port in controller.Ports)
                {
                    _cache.StorePortConfig(port, PortConfig.Default);
                }
            }

            foreach (var(ports, config) in _configManager.CurrentConfig.PortConfigs)
            {
                foreach (var port in ports)
                {
                    _cache.StorePortConfig(port, config);
                }
            }

            foreach (var(sensors, config) in _configManager.CurrentConfig.SensorConfigs)
            {
                foreach (var sensor in sensors)
                {
                    _cache.StoreSensorConfig(sensor, config);
                }
            }

            ApplyComputerStateProfile(ComputerStateType.Boot);

            _timerManager = new TimerManager();
            _timerManager.RegisterTimer(_configManager.CurrentConfig.SensorTimerInterval, SensorTimerCallback);
            _timerManager.RegisterTimer(_configManager.CurrentConfig.DeviceSpeedTimerInterval, DeviceSpeedTimerCallback);
            _timerManager.RegisterTimer(_configManager.CurrentConfig.DeviceRgbTimerInterval, DeviceRgbTimerCallback);
            if (LogManager.Configuration.LoggingRules.Any(r => r.IsLoggingEnabledForLevel(LogLevel.Debug)))
            {
                _timerManager.RegisterTimer(_configManager.CurrentConfig.LoggingTimerInterval, LoggingTimerCallback);
            }

            _timerManager.Start();

            Logger.Info("Initializing done!");
            Logger.Info($"{new string('=', 64)}");
            return(true);
        }
Ejemplo n.º 8
0
 public SiteActionFilter(OxiteContext context, AppSettingsHelper appSettings)
 {
     this.context     = context;
     this.appSettings = appSettings;
 }
Ejemplo n.º 9
0
        /// <summary>
        /// 检查Token
        /// </summary>
        /// <returns></returns>
        public TokenResultModel CheckToken(HttpRequestMessage request)
        {
            TokenResultModel resultModel = new TokenResultModel();
            string           token       = request.Headers.GetValues("MojoryToken").First();

            //如果头部没有token 从参数中获取token
            if (string.IsNullOrEmpty(token))
            {
                string url   = request.GetRequestContext().Url.ToString();
                Regex  regex = new Regex("token=(?<token>.+?)&");
                token = regex.Match(url).Groups["token"].Value;
            }

            /*
             * 如果传入的token是给定的token数据,则直接返回
             */
            if (token == AppSettingsHelper.GetAppSettings(AppSettingsEnum.OAToken))
            {
                resultModel.Code  = TokenResultEnum.Allow;
                resultModel.Token = token;

                IEnumerable <string> cidValuesList;
                if (request.Headers.TryGetValues("Cid", out cidValuesList))
                {
                    resultModel.Cid = Convert.ToInt32(cidValuesList.FirstOrDefault());
                }
                IEnumerable <string> oidValuesList;
                if (request.Headers.TryGetValues("Oid", out oidValuesList))
                {
                    resultModel.Oid = oidValuesList.FirstOrDefault();
                }
                else
                {
                    throw new Exception("请传入操作员id");
                }
                return(resultModel);
            }

            TokenModel tokenModel = new TokenModel();

            //1.判断是否存在Token
            if (string.IsNullOrEmpty(token))//1.1 不存在,则生成Token,返回登录首页
            {
                tokenModel.Value = new TokenValueModel {
                    Status = TokenResultEnum.Initial
                };
                resultModel.Code  = TokenResultEnum.Initial;
                resultModel.Token = SetToken(tokenModel);
                return(resultModel);
            }
            //2.根据传入的Token获取Redis中对应的信息
            tokenModel = GetToken(token);
            if (tokenModel == null)//2.1 如果不存在Redis中,则生成初始Token
            {
                tokenModel = new TokenModel {
                    Value = new TokenValueModel {
                        Status = TokenResultEnum.Initial
                    }
                };
                resultModel.Code  = TokenResultEnum.Initial;
                resultModel.Token = SetToken(tokenModel);
                return(resultModel);
            }

            if (tokenModel.Value.Status == TokenResultEnum.Initial)//2.2.2 Token为初始状态
            {
                resultModel.Code  = TokenResultEnum.Initial;
                resultModel.Token = token;
                return(resultModel);
            }
            if (tokenModel.Value.Status == TokenResultEnum.NoAllow)//2.2.2 Token为禁止访问Api
            {
                resultModel.Code  = TokenResultEnum.NoAllow;
                resultModel.Token = token;
                return(resultModel);
            }
            //2.2.3 允许访问Api
            resultModel.Code  = TokenResultEnum.Allow;
            resultModel.Token = token;
            resultModel.Cid   = tokenModel.Value.Cid;
            //2.2.4 更新Token有效时间
            ExpireToken(token, 24);
            return(resultModel);
        }
Ejemplo n.º 10
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseHttpsRedirection();
            app.UseRouting();

            app.UseCors(x => x.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });

            app.UseSwagger();

            app.UseSwaggerUI(c =>
            {
                c.RoutePrefix = AppSettingsHelper.Get("Swagger", "RoutePrefix");
                c.SwaggerEndpoint($"{AppSettingsHelper.Get("Swagger", "Version")}/swagger.json", AppSettingsHelper.Get("Swagger", "Title"));
            });
        }
Ejemplo n.º 11
0
 public EcardRoutes(RouteCollection routes, AppSettingsHelper appSettings, Site site)
 {
     _routes      = routes;
     _appSettings = appSettings;
     _site        = site;
 }
Ejemplo n.º 12
0
 public AzureBlobStorageService()
 {
     _azure_storage_connection_string = AppSettingsHelper.GetConfig("StorageConnectionString");
     _container = AppSettingsHelper.GetConfig("StorageContainer");
     SetPublicContainerPermissions();
 }
Ejemplo n.º 13
0
        private SearchCriteria GetSearchCriteria(ProductSearchViewModel productSearchViewModel = null)
        {
            var sortBy = Request.QueryString["SortBy"];

            if (string.IsNullOrEmpty(sortBy))
            {
                sortBy = "default";                               // "alphaasc";
            }
//            if (sortBy.ToLower() == "default")
//            {
//                sortBy = "alphaasc";
//            }
            var pageQS  = Request.QueryString["Page"];
            var page    = (string.IsNullOrEmpty(pageQS) ? "1" : pageQS.Split(',').FirstOrDefault()).AsInt(1);
            var perPage = AppSettingsHelper.GetSafeValue("ProductsPerPage", 120);

            var categoryId   = Request["categoryId"];
            var categoryName = Request["categoryName"];
            var brand        = Request["brand"];

            if (productSearchViewModel == null)
            {
                productSearchViewModel = new ProductSearchViewModel
                {
                    ResultsPerPage = perPage,
                    CurrentPage    = page,
                    OrderBy        = sortBy,
                    Keywords       = Request.QueryString["keywords"]
                };
            }
            if (!string.IsNullOrEmpty(brand))
            {
                productSearchViewModel.Brand.Add(brand);
            }

            var searchCriteria = new SearchCriteria
            {
                OrderBy        = productSearchViewModel.OrderBy ?? "default",
                ResultsPerPage = productSearchViewModel.ResultsPerPage,
                CurrentPage    = productSearchViewModel.CurrentPage
            };

            if (searchCriteria.ResultsPerPage == 0)
            {
                searchCriteria.ResultsPerPage = perPage;
            }
            if (searchCriteria.CurrentPage == 0)
            {
                searchCriteria.CurrentPage = page;
            }

            searchCriteria.DiscreteTerms = productSearchViewModel.Keywords;
            searchCriteria.CustomCriteria.Add("CurrencyId",
                                              CommerceContext.Currency.CurrentForPricing.CurrencyId.ToString());
            searchCriteria.CustomCriteria.Add("ShopId", CommerceContext.Shop.CurrentShop.Id.ToString());
            searchCriteria.CustomCriteria.Add("MinPrice", productSearchViewModel.MinPrice);
            searchCriteria.CustomCriteria.Add("MaxPrice", productSearchViewModel.MaxPrice);
            if (!string.IsNullOrEmpty(categoryId))
            {
                searchCriteria.CustomCriteria.Add("ProductCategoryID", categoryId);
            }
            else
            {
                searchCriteria.CustomCriteria.Add("ProductCategoryID",
                                                  productSearchViewModel.ProductCategory.ToDelimitedString());
            }
            if (!string.IsNullOrEmpty(categoryName))
            {
                searchCriteria.CustomCriteria.Add("ProductCategoryName", categoryName);
            }
            searchCriteria.CustomCriteria.Add("Martindale", productSearchViewModel.Martindale);


            var attributeOptions = ToAttributeString(productSearchViewModel.SelectedEndUses,
                                                     productSearchViewModel.SelectedFlameRetardant,
                                                     productSearchViewModel.SelectedType,
                                                     productSearchViewModel.SelectedPatterns,
                                                     productSearchViewModel.SelectedDimOuts,
                                                     productSearchViewModel.SelectedProductGroups,
                                                     productSearchViewModel.SelectedFRTreatable,
                                                     productSearchViewModel.SelectedFRTreated,
                                                     productSearchViewModel.SelectedFRInherent,
                                                     productSearchViewModel.SelectedWallpaperTypes,
                                                     productSearchViewModel.SelectedTrimmingTypes,
                                                     productSearchViewModel.SelectedFabricTypes,
                                                     productSearchViewModel.SelectedUpholsteryClothDesignation,
                                                     productSearchViewModel.SelectedWallpaperCareInstructions,
                                                     productSearchViewModel.SelectedFabricCareInstructions,
                                                     productSearchViewModel.SelectedRooms
                                                     );
            var brandAttributeOptions = ToAttributeString(productSearchViewModel.Brand);

            if (attributeOptions.Length > 1)
            {
                searchCriteria.CustomCriteria.Add("Attributes", attributeOptions);
            }
            if (brandAttributeOptions.Length > 1)
            {
                searchCriteria.CustomCriteria.Add("BrandAttributes", brandAttributeOptions);
            }

            if (productSearchViewModel.SelectedColours != null && productSearchViewModel.SelectedColours.Any() &&
                productSearchViewModel.SelectedColours[0].IndexOf(",") > 0)
            {
                productSearchViewModel.SelectedColours = productSearchViewModel.SelectedColours[0].Split(',').ToList();
            }
            searchCriteria.CustomCriteria.Add("ColourCodes",
                                              string.Join(",", productSearchViewModel.SelectedColours.ToArray()));

            return(searchCriteria);
        }
Ejemplo n.º 14
0
        public override ActionResult Detail()
        {
            if (ColonyContext.Response.UrlExtension != null)
            {
                if ((ColonyContext.Response.UrlParts.Count > 1 && ColonyContext.Response.UrlParts[1] == "paint") ||
                    (ColonyContext.Response.UrlParts.Count == 1 &&
                     ColonyContext.Response.UrlExtensionParts[0] == "paint"))
                {
                    ViewBag.IsPaint = true;

                    var maxRelated = AppSettingsHelper.GetSafeValue <long>("MaxRelatedProducts", 50);
                    var maxRecentlyViewedProducts = AppSettingsHelper.GetSafeValue("MaxRecentlyViewedProducts", 10);

                    var viewModel = GetProductViewModelForProductDetail("paint/" + ColonyContext.Response.UrlExtension);

                    if (viewModel != null)
                    {
                        if (viewModel.SelectedSku.IsOptionProduct != null)
                        {
                            if (viewModel.SelectedSku.IsOptionProduct.Equals("Y",
                                                                             StringComparison.OrdinalIgnoreCase))
                            {
                                var parentSku =
                                    viewModel.Skus.FirstOrDefault(x => x.Sku.Id == viewModel.SelectedSku.ParentSkuId);
                                if (parentSku != null)
                                {
                                    var redirectUrl = new UriBuilder(ColonyContext.Response.Uri.AbsoluteUri);
                                    var query       = HttpUtility.ParseQueryString(ColonyContext.Response.Uri.Query);

                                    query.Remove("code");
                                    query.Add("code", parentSku.Sku.Code);
                                    redirectUrl.Query = query.ToString();

                                    return(Redirect(redirectUrl.ToString()));
                                }
                                return(null);
                            }
                        }
                        //else return null;


                        var trackingEvent = ProductViewedTrackedEvent.Instance;
                        trackingEvent.TrackedEntity = viewModel.Product;
                        VisitorTrackingContext.TrackEvent(trackingEvent, Request.Url.AbsoluteUri);
                        _productsService.AddRecentlyViewedProduct(VisitorTrackingContext.CurrentVisitor.Id,
                                                                  viewModel.Product);
                        var breadcrumbDisplay = "";
                        if (viewModel.SelectedSku.Attributes["Descriptive Colour"] != null)
                        {
                            breadcrumbDisplay = viewModel.SelectedSku.Attributes["Descriptive Colour"];
                        }
                        else
                        {
                            breadcrumbDisplay = "Paint";
                        }
                        if (ViewBag.IsPaint)
                        {
                            ShopHelpers.SetBreadcrumbForProduct(viewModel.Product, breadcrumbDisplay);
                        }
                        else
                        {
                            ShopHelpers.SetBreadcrumbForProduct(viewModel.Product);
                        }
                        if (ColonyContext.Response.Breadcrumbs.Count >= 3)
                        {
                            ColonyContext.Response.Breadcrumbs.RemoveAt(ColonyContext.Response.Breadcrumbs.Count - 3);
                        }
                        Response.AddHeader("Cache-Control", "Cache-Control:public, max-age=1800");
                        return(PartialView("Detail", viewModel));
                    }
                    return(null);
                }
            }
            return(base.Detail());
        }
Ejemplo n.º 15
0
        public ActionResult NewCollections()
        {
            var tab = Request.QueryString["show"];

            var page     = 1;
            var pageSize =
                AppSettingsHelper.GetSafeValue(
                    string.Format("MinCollectionSearchResults.{0}", ColonyContext.Current.CurrentSite.SiteKey), 6);
            var keywords = "";
            var brandKey = "";

            if (ColonyContext.Response.QueryParameters.ContainsKey("page"))
            {
                page = ColonyContext.Response.QueryParameters["page"].AsInt(page);
            }

            if (ColonyContext.Response.QueryParameters.ContainsKey("pagesize"))
            {
                pageSize = ColonyContext.Response.QueryParameters["pagesize"].AsInt(pageSize);
            }

            if (ColonyContext.Response.QueryParameters.ContainsKey("brandKey"))
            {
                brandKey = ColonyContext.Response.QueryParameters["brandKey"];
            }
            else
            {
                brandKey = Request.Form["brandKey"] ?? "";
            }

            if (ColonyContext.Response.QueryParameters.ContainsKey("keywords"))
            {
                keywords = ColonyContext.Response.QueryParameters["keywords"];
            }
            else
            {
                keywords = Request.Form["keywords"] ?? "";
            }

            //string cacheKeyCategory = string.Format("shop_{0}_uri_{1}_category", CurrentShop.Id, ColonyContext.Response.UrlExtension);
            //string cacheKeySubCategories = string.Format("shop_{0}_uri_{1}_subcategories", CurrentShop.Id, ColonyContext.Response.UrlExtension);

            var category =
                _productCategoriesService.GetForFrontEndCategoryListing(
                    new { Uri = ColonyContext.Response.UrlExtension, ShopId = CurrentShop.Id }, page, pageSize)
                .FirstOrDefault();

            if (category == null)
            {
                return(HttpNotFound());
            }

            bool?isB2b = null;

            if (IsB2BUserLoggedIn(HttpContext))
            {
                isB2b = true;
            }

            var parameters = new
            {
                ShopID           = CurrentShop.Id,
                IsNew            = true,
                CategoryKeywords = keywords,
                CategoryBrandKey = brandKey == "" ? null : brandKey,
                IsB2B            = isB2b
            };

            var newCollections =
                _productCategoriesService.GetForFrontEndCategoryListing(parameters, page, pageSize)
                .Where(t => t.ParentID.HasValue)
                .ToList();

            var viewModel = new CategoryViewModel
            {
                IsParent        = true,
                Category        = category,
                CategoryId      = category.Id,
                Name            = category.Name,
                ImageAssetId    = category.ImageAssetId,
                LongDescription = category.LongDescription,
                IsNew           = category.IsNew,
                SearchKeywords  = keywords
            };

            if (category.CategoryImages != null && category.CategoryImages.Any())
            {
                viewModel.Images = category.CategoryImages.ToList();
            }

            viewModel.SubCategories =
                newCollections.Select(
                    subCategory =>
            {
                return(GetCategoryViewModel(subCategory, isB2b, false, 0, 0, page, pageSize,
                                            viewModel.SubCategories.PageCount, viewModel.SubCategories.RecordCount));
            })
                .ToPagedCollection(page, pageSize);

            var minCollectionSearchResults =
                AppSettingsHelper.GetSafeValue(
                    string.Format("MinCollectionSearchResults.{0}", ColonyContext.Current.CurrentSite.SiteKey), 6);

            viewModel.ShouldShowSearch = viewModel.SubCategories.Count >= minCollectionSearchResults;

            if (!string.IsNullOrEmpty(keywords))
            {
                viewModel.ShouldShowSearch = true;
            }

            ViewBag.Title = "Products";

            ShopHelpers.SetBreadcrumbForProductCategory(category);
            return(PartialView("Category", viewModel));
        }
Ejemplo n.º 16
0
 private void SaveRadioStations()
 {
     AppSettingsHelper.WriteAsJson("GnRadios", _gnRadios);
 }
Ejemplo n.º 17
0
        /// <summary>
        /// Raised when a message is recieved from the foreground app
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void BackgroundMediaPlayer_MessageReceivedFromForeground(object sender, MediaPlayerDataReceivedEventArgs e)
        {
            AppSuspendedMessage appSuspendedMessage;

            if (MessageService.TryParseMessage(e.Data, out appSuspendedMessage))
            {
                Debug.WriteLine("App suspending");                 // App is suspended, you can save your task state at this point
                foregroundAppState = AppState.Suspended;
                var currentTrackId = GetCurrentTrackId();
                AppSettingsHelper.SaveVal(ApplicationSettingsConstants.TrackId, currentTrackId == null ? null : currentTrackId.ToString());
                return;
            }

            AppResumedMessage appResumedMessage;

            if (MessageService.TryParseMessage(e.Data, out appResumedMessage))
            {
                Debug.WriteLine("App resuming");                 // App is resumed, now subscribe to message channel
                foregroundAppState = AppState.Active;
                return;
            }

            StartPlaybackMessage startPlaybackMessage;

            if (MessageService.TryParseMessage(e.Data, out startPlaybackMessage))
            {
                //Foreground App process has signalled that it is ready for playback
                Debug.WriteLine("Starting Playback");
                StartPlayback();
                return;
            }

            SkipNextMessage skipNextMessage;

            if (MessageService.TryParseMessage(e.Data, out skipNextMessage))
            {
                // User has chosen to skip track from app context.
                Debug.WriteLine("Skipping to next");
                SkipToNext();
                return;
            }

            SkipPreviousMessage skipPreviousMessage;

            if (MessageService.TryParseMessage(e.Data, out skipPreviousMessage))
            {
                // User has chosen to skip track from app context.
                Debug.WriteLine("Skipping to previous");
                SkipToPrevious();
                return;
            }

            TrackChangedMessage trackChangedMessage;

            if (MessageService.TryParseMessage(e.Data, out trackChangedMessage))
            {
                var index = _mpl.Items.ToList().FindIndex(i => (Uri)i.Source.CustomProperties[ApplicationSettingsConstants.TrackId] == trackChangedMessage.TrackId);
                Debug.WriteLine("Skipping to track " + index);
                _smtc.PlaybackStatus = MediaPlaybackStatus.Changing;
                _mpl.MoveTo((uint)index);
                return;
            }

            UpdatePlaylistMessage updatePlaylistMessage;

            if (MessageService.TryParseMessage(e.Data, out updatePlaylistMessage))
            {
                CreatePlaybackList(updatePlaylistMessage.Songs);
                return;
            }
        }
Ejemplo n.º 18
0
 void saveMru()
 {
     AppSettingsHelper.SaveStr(AppSetConst.Mru4Roam, JsonHelper.ToJson(MruLst));
 }
        /// <summary>
        /// 提交登录申请
        /// </summary>
        /// <param name="account"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public string SubLogin(string account, string password)
        {
            UserInfoView user = _userInfoBll.GetUserInfo(account);

            //string md5Pswd = EncryptHelper.MD5(pswd);
            if (user == null)
            {
                return(JsonConvert.SerializeObject(new ExecuteResult(false, "用户名或密码错误")));
            }
            if (user.Password != password)
            {
                return(JsonConvert.SerializeObject(new ExecuteResult(false, "用户名或密码错误")));
            }
            //权限
            //user.UserAccessedControls = _userInfoBll.GetAccessedControls(account);
            //服务器设置缓存 用于单点登录
            UserStatusCheck.SetCache(user);
            //设置session
            SessionHelper.SetSession(UserInfoOfSession, user);

            #region 设置cookie

            HttpCookie cookie = CookieHelper.Get(EncryptHelper.MD5(UserInfoOfCookie));
            if (cookie != null)
            {
                CookieHelper.Remove(EncryptHelper.MD5(UserInfoOfCookie));
            }
            //cookie加密
            cookie = CookieHelper.Set(EncryptHelper.MD5(UserInfoOfCookie));
            string n1 = AppSettingsHelper.GetString("UserAccount");
            string p1 = AppSettingsHelper.GetString("UserPassword");
            cookie.Values.Add(EncryptHelper.MD5(n1), user.Account);
            cookie.Values.Add(EncryptHelper.MD5(p1), user.Password);
            CookieHelper.Save(cookie, Convert.ToInt32(AppSettingsHelper.GetString("ExpiresHours")));

            #endregion

            #region 记录登录日志
            XmlConfigurator.Configure();
            log4net.ILog log    = log4net.LogManager.GetLogger("loginfo");
            string       result = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
            if (string.IsNullOrEmpty(result))
            {
                result = Request.ServerVariables["REMOTE_ADDR"];
            }
            if (string.IsNullOrEmpty(result))
            {
                result = Request.UserHostAddress;
            }
            if (string.IsNullOrEmpty(result))
            {
                result = "0.0.0.0";
            }
            ;
            string message = user.Account + "通过" + result + "于" + DateTime.Now.ToString() + "成功登录\r\n";
            log.Info(message);
            #endregion

            string url = Request.UrlReferrer.AbsoluteUri;

            if (url.IndexOf("?ReturnUrl") == -1)
            {
                string homepage = "http://" + Request.ServerVariables["HTTP_HOST"] + AppSettingsHelper.GetString("Homepage");
                return(JsonConvert.SerializeObject(new SingleExecuteResult <UserInfoView>(true, homepage, user)));
            }
            else
            {
                int    index  = url.IndexOf("?ReturnUrl");
                string urls   = url.Substring(index, url.Length - index);
                int    index1 = urls.IndexOf('=');
                int    index2 = urls.IndexOf('&');
                if (index2 == -1)
                {
                    string urlreturn = urls.Substring(index1 + 1, urls.Length - index1 - 1);
                    return(JsonConvert.SerializeObject(new SingleExecuteResult <UserInfoView>(true, urlreturn, user)));
                }
                else
                {
                    string urlreturn = urls.Substring(index1 + 1, index2 - index1 - 1);
                    return(JsonConvert.SerializeObject(new SingleExecuteResult <UserInfoView>(true, urlreturn, user)));
                }
            }
        }
Ejemplo n.º 20
0
 public SiteInfoActionFilter(AppSettingsHelper appSettings, Site site)
 {
     this.appSettings = appSettings;
     this.site        = site;
 }
Ejemplo n.º 21
0
        public static void AddAuthorizationSetup(this IServiceCollection services)
        {
            if (services == null)
            {
                throw new ArgumentNullException(nameof(services));
            }

            //Tips:注释中的中括号【xxx】的内容,与下边region中的模块,是一一匹配的

            /*
             * 如果不想走数据库,仅仅想在代码里配置授权,这里可以按照下边的步骤:
             * 1步、【1、基于角色的API授权】
             * 很简单,只需要在指定的接口上,配置特性即可,比如:[Authorize(Roles = "Admin,System,Others")]
             *
             * 但是如果你感觉"Admin,System,Others",这样的字符串太长的话,可以把这个融合到简单策略里
             * 具体的配置,看下文的Region模块【2、基于策略的授权(简单版)】 ,然后在接口上,配置特性:[Authorize(Policy = "A_S_O")]
             *
             *
             * 2步、配置Bearer认证服务,具体代码看下文的 region 【第二步:配置认证服务】
             *
             * 3步、开启中间件
             */



            /*
             * 如果想要把权限配置到数据库,步骤如下:
             * 1步、【3复杂策略授权】
             * 具体的查看下边 region 内的内容
             *
             * 2步、配置Bearer认证服务,具体代码看下文的 region 【第二步:配置认证服务】
             *
             * 3步、开启中间件
             */



            //3、综上所述,设置权限,必须要三步走,授权 + 配置认证服务 + 开启授权中间件,只不过自定义的中间件不能验证过期时间,所以我都是用官方的。


            #region 1、基于角色的API授权

            // 1【授权】、这个很简单,其他什么都不用做, 只需要在API层的controller上边,增加特性即可,注意,只能是角色的:
            // [Authorize(Roles = "Admin,System")]


            #endregion

            #region 2、基于策略的授权(简单版)

            // 1【授权】、这个和上边的异曲同工,好处就是不用在controller中,写多个 roles 。
            // 然后这么写 [Authorize(Policy = "Admin")]
            services.AddAuthorization(options =>
            {
                options.AddPolicy("Client", policy => policy.RequireRole("Client").Build());
                options.AddPolicy("Admin", policy => policy.RequireRole("Admin").Build());
                options.AddPolicy("SystemOrAdmin", policy => policy.RequireRole("Admin", "System"));
                options.AddPolicy("A_S_O", policy => policy.RequireRole("Admin", "System", "Others"));
            });


            #endregion


            #region 参数
            //读取配置文件
            var symmetricKeyAsBase64 = AppSettingsHelper.app(new string[] { "Audience", "Secret" });
            var keyByteArray         = Encoding.ASCII.GetBytes(symmetricKeyAsBase64);
            var signingKey           = new SymmetricSecurityKey(keyByteArray);
            var Issuer   = AppSettingsHelper.app(new string[] { "Audience", "Issuer" });
            var Audience = AppSettingsHelper.app(new string[] { "Audience", "Audience" });

            var signingCredentials = new SigningCredentials(signingKey, SecurityAlgorithms.HmacSha256);

            // 如果要数据库动态绑定,这里先留个空,后边处理器里动态赋值
            var permission = new List <PermissionItem>();

            // 角色与接口的权限要求参数
            var permissionRequirement = new PermissionRequirement(
                "/api/denied",                            // 拒绝授权的跳转地址(目前无用)
                permission,
                ClaimTypes.Role,                          //基于角色的授权
                Issuer,                                   //发行人
                Audience,                                 //听众
                signingCredentials,                       //签名凭据
                expiration: TimeSpan.FromSeconds(60 * 60) //接口的过期时间
                );
            #endregion


            // 3、复杂的策略授权
            services.AddAuthorization(options =>
            {
                options.AddPolicy(Permissions.Name,
                                  policy => policy.Requirements.Add(permissionRequirement));
            });



            // 令牌验证参数
            var tokenValidationParameters = new TokenValidationParameters
            {
                ValidateIssuerSigningKey = true,
                IssuerSigningKey         = signingKey,
                ValidateIssuer           = true,
                ValidIssuer           = Issuer,      //发行人
                ValidateAudience      = true,
                ValidAudience         = Audience,    //订阅人
                ValidateLifetime      = true,
                ClockSkew             = TimeSpan.FromSeconds(30),
                RequireExpirationTime = true,
            };

            //2.1【认证】、core自带官方JWT认证
            // 开启Bearer认证
            services.AddAuthentication(o => {
                o.DefaultScheme          = JwtBearerDefaults.AuthenticationScheme;
                o.DefaultChallengeScheme = nameof(ApiResponseHandler);
                o.DefaultForbidScheme    = nameof(ApiResponseHandler);
            })
            // 添加JwtBearer服务
            .AddJwtBearer(o =>
            {
                o.TokenValidationParameters = tokenValidationParameters;
                o.Events = new JwtBearerEvents
                {
                    OnAuthenticationFailed = context =>
                    {
                        // 如果过期,则把<是否过期>添加到,返回头信息中
                        if (context.Exception.GetType() == typeof(SecurityTokenExpiredException))
                        {
                            context.Response.Headers.Add("Token-Expired", "true");
                        }
                        return(Task.CompletedTask);
                    }
                };
            })
            .AddScheme <AuthenticationSchemeOptions, ApiResponseHandler>(nameof(ApiResponseHandler), o => { });


            //2.2【认证】、IdentityServer4 认证 (暂时忽略)
            //services.AddAuthentication("Bearer")
            //  .AddIdentityServerAuthentication(options =>
            //  {
            //      options.Authority = "http://localhost:5002";
            //      options.RequireHttpsMetadata = false;
            //      options.ApiName = "blog.core.api";
            //  });



            // 注入权限处理器
            services.AddSingleton <IAuthorizationHandler, PermissionHandler>();
            services.AddSingleton(permissionRequirement);
        }
Ejemplo n.º 22
0
        static void Main(string[] args)
        {
#if DEBUG
            System.Diagnostics.Debugger.Launch();
#endif
            var p4Model       = new PerforceCommand();
            var parsingStatus = Parser.Default.ParseArguments(args, p4Model);

            try
            {
                if (!parsingStatus)
                {
                    Log.Info(p4Model.GetUsage());
                    return;
                }
                else
                {
                    if (p4Model.LoadFromConfig)
                    {
                        if (p4Model.Verbose)
                        {
                            Log.Info(LoggingStrings.LoadingConfigFile);
                        }
                        try
                        {
                            if (string.IsNullOrWhiteSpace(p4Model.Server))
                            {
                                p4Model.Server = AppSettingsHelper.Get <string>(ResourceStrings.PerforceServerKey);
                            }
                            if (string.IsNullOrWhiteSpace(p4Model.Username))
                            {
                                p4Model.Username = AppSettingsHelper.Get <string>(ResourceStrings.PerforceUsernameKey);
                            }
                            if (string.IsNullOrWhiteSpace(p4Model.Password))
                            {
                                p4Model.Password = AppSettingsHelper.Get <string>(ResourceStrings.PerforcePasswordKey);
                            }
                            if (string.IsNullOrWhiteSpace(p4Model.Timeout.ToString()))
                            {
                                p4Model.Timeout = AppSettingsHelper.Get <int>(ResourceStrings.PerforceTimeoutKey);
                            }
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(ex.Message);
                        }
                    }
                    if (p4Model.Verbose)
                    {
                        Log.Info(string.Format(LoggingStrings.ConnectingLogging, p4Model.Server, p4Model.Username, p4Model.Location, string.Join(ResourceStrings.SourceListJoiner, p4Model.SourcesList)));
                    }
                    var p4Repo          = PerforceHelpers.GetPerforceRepo(p4Model.Server, p4Model.Username, p4Model.Password, p4Model.Timeout);
                    var dictionaryToUse = PerforceHelpers.CreateSourceDictionary(p4Repo, p4Model.Location, p4Model.SourcesList.ToList());
                    foreach (var entry in dictionaryToUse)
                    {
                        if (p4Model.Verbose)
                        {
                            Log.Info(string.Format(LoggingStrings.CopyFileLogging, entry.Value, entry.Key));
                        }
                        PerforceHelpers.CopyFile(p4Repo, entry.Key, entry.Value);
                    }
                    if (p4Model.Verbose)
                    {
                        Log.Info(LoggingStrings.LoggingOut);
                    }
                    PerforceHelpers.PerforceLogout(p4Repo);
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
            }
        }
Ejemplo n.º 23
0
 public AlunosRepositorio(AppSettingsHelper _appSettingsHelper)
 {
     _AppSettingsHelper = _appSettingsHelper;
 }
Ejemplo n.º 24
0
        public TraOrderSubmitResponseModel RequestHoldSeat(TraAddOrderModel addModel)
        {
            TraOrderSubmitResponseModel responseModel = null;
            string isServer = AppSettingsHelper.GetAppSettings(AppSettingsEnum.IsServer);

            if (isServer == "T")
            {
                //请求接口
                #region 封装接口请求参数
                TraOrderSubmitModel model = new TraOrderSubmitModel()
                {
                    orderid            = addModel.Order.OrderId.ToString(),
                    checi              = addModel.OrderDetailList[0].TrainNo,
                    from_station_code  = addModel.OrderDetailList[0].StartCode,
                    from_station_name  = addModel.OrderDetailList[0].StartName,
                    to_station_code    = addModel.OrderDetailList[0].EndCode,
                    to_station_name    = addModel.OrderDetailList[0].EndName,
                    train_date         = addModel.OrderDetailList[0].StartTime.ToString("yyyy-MM-dd"),
                    passengers         = new List <TraOrderSubmitPassengerModel>(),
                    LoginUserName      = "",
                    LoginUserPassword  = "",
                    is_accept_standing = addModel.IsAcceptStanding,
                    is_choose_seats    = addModel.IsChooseSeats,
                    choose_seats       = addModel.ChooseSeats
                };


                model.passengers = new List <TraOrderSubmitPassengerModel>();
                foreach (var p in addModel.OrderDetailList[0].PassengerList)
                {
                    TraOrderSubmitPassengerModel pp = new TraOrderSubmitPassengerModel();
                    pp.passengersename      = p.Name.Replace("/", " ");
                    pp.passportseno         = p.CardNo;
                    pp.passporttypeseidname = p.CardNoType.ToDescription();
                    if (p.CardNoType == CardTypeEnum.Certificate)
                    {
                        pp.passporttypeseid = "1";
                    }
                    else if (p.CardNoType == CardTypeEnum.HongKongAndMacaoPass)
                    {
                        pp.passporttypeseid = "C";
                    }
                    else if (p.CardNoType == CardTypeEnum.Passport)
                    {
                        pp.passporttypeseid = "B";
                    }
                    else if (p.CardNoType == CardTypeEnum.TaiwanEntryPermit || p.CardNoType == CardTypeEnum.MTP)
                    {
                        pp.passporttypeseid     = "G";
                        pp.passporttypeseidname = "台湾通行证";
                    }
                    //pp.passporttypeseid = ((int) p.CardNoType).ToString();
                    pp.piaotype     = "1";
                    pp.ticket_no    = "";
                    pp.piaotypename = "成人票";
                    if (addModel.OrderDetailList[0].PlaceGrade != "无座")
                    {
                        pp.zwcode = TrainTypeEnum.GetTypeCodeByName(addModel.OrderDetailList[0].PlaceGrade);
                        pp.zwname = addModel.OrderDetailList[0].PlaceGrade;
                    }
                    else
                    {
                        //如果当前是无座则根据当前车次选择最低座位
                        List <string> cTypeList = new List <string>()
                        {
                            "G", "C", "D"
                        };
                        if (!string.IsNullOrEmpty(model.checi) && model.checi.Length > 0 &&
                            cTypeList.Contains(model.checi.Substring(0, 1).ToUpper()))
                        {
                            pp.zwcode = TrainTypeEnum.GetTypeCodeByName("二等座");
                            pp.zwname = "二等座";
                        }
                        else
                        {
                            pp.zwcode = TrainTypeEnum.GetTypeCodeByName("硬座");
                            pp.zwname = "硬座";
                        }
                    }
                    pp.cxin  = "";
                    pp.price = addModel.OrderDetailList[0].FacePrice.ToString("0.00");
                    model.passengers.Add(pp);
                }
                #endregion
                responseModel = _requestHoldSeatBll.RequestHoldSeatInterface(model);
            }
            else
            {
                responseModel = new TraOrderSubmitResponseModel()
                {
                    success = true, orderid = "Test" + DateTime.Now.ToString("yyyyMMddHHmmssfff")
                };
            }
            #region 请求成功后操作
            if (responseModel.success)//请求占位成功
            {
                int count =
                    _traInterFaceOrderDal.Query <TraInterFaceOrderEntity>(a => a.Transactionid == responseModel.orderid,
                                                                          true).Count();
                if (count == 0)//如果没有当前接口的订单号,则插入该条信息
                {
                    TraInterFaceOrderEntity traInterFaceOrderEntity = new TraInterFaceOrderEntity
                    {
                        CreateTime    = DateTime.Now,
                        OrderId       = addModel.Order.OrderId.ToString(),
                        Status        = (int)OrderTypeEnum.ApplyHoldSeat,
                        Transactionid = responseModel.orderid
                    };
                    traInterFaceOrderEntity =
                        _traInterFaceOrderDal.Insert <TraInterFaceOrderEntity>(traInterFaceOrderEntity);

                    _traOrderOperateDal.Insert <TraOrderOperateEntity>(new TraOrderOperateEntity()
                    {
                        AfterOperateStatus = (int)OrderTypeEnum.MakingTicket,
                        InterfaceId        = traInterFaceOrderEntity.InterfaceId,
                        Operate            = (int)OrderTypeEnum.ApplyHoldSeat,
                        OperateTime        = traInterFaceOrderEntity.CreateTime
                    });
                }
            }
            #endregion

            return(responseModel);
        }
Ejemplo n.º 25
0
        /// <summary>
        /// 创建机票订单
        /// </summary>
        /// <param name="orderViewModel"></param>
        /// <returns></returns>
        public AddOrderResponseViewModel AddDomesticOrderApplicationService(AddOrderRequestViewModel orderViewModel)
        {
            string        oidTemp       = orderViewModel.CreateOid;
            int           orderid       = 0;
            AddOrderModel addOrderModel = Mapper.Map <AddOrderRequestViewModel, AddOrderModel>(orderViewModel);

            //0.获取客户信息服务
            addOrderModel.Customer = _getCustomerServiceBll.GetCustomerByCid(orderViewModel.Cid);
            if (!string.IsNullOrEmpty(addOrderModel.Customer.CorpID))
            {
                CorporationModel corporationModel = _getCorpServiceBll.GetCorp(addOrderModel.Customer.CorpID);
                if (!addOrderModel.IsPrint.HasValue)
                {
                    addOrderModel.IsPrint = corporationModel.IsPrint ?? 0;
                }
                if (!string.IsNullOrEmpty(corporationModel.ResponsibleOid) && orderViewModel.OrderSource != "O")
                {
                    addOrderModel.CreateOid = corporationModel.ResponsibleOid;
                }
            }


            //1.获取乘机人的联系人Id对应的乘客信息
            List <int> contactList = addOrderModel.PassengerList.Select(n => n.Contactid ?? 0).ToList();

            addOrderModel.PassengerCustomerList = _getCorpPassengerCustomerServiceBll.GetCorpPassengerCustomer(contactList);

            OperatorModel operatorModel = _getOperatorServiceBll.GetOperatorByOid(addOrderModel.CreateOid);


            //2.创建订单服务
            using (var transaction = this.Context.Database.BeginTransaction())
            {
                try
                {
                    orderid = _addOrderServiceBll.AddDomesticOrder(addOrderModel);

                    #region 送审

                    if (orderid > 0)
                    {
                        SubmitCorpAduitOrderModel submitCorpAduitOrder = new SubmitCorpAduitOrderModel()
                        {
                            OrderInfoList = new List <SubmitCorpAduitOrderDetailModel>()
                            {
                                new SubmitCorpAduitOrderDetailModel()
                                {
                                    OrderId   = orderid,
                                    OrderType = OrderSourceTypeEnum.Flt
                                }
                            },
                            PolicyId        = addOrderModel.CorpPolicyId,
                            AduitConfigId   = addOrderModel.CorpAduitId,
                            Source          = orderViewModel.OrderSource,
                            SubmitCid       = orderViewModel.Cid,
                            SubmitOid       = oidTemp,
                            IsViolatePolicy =
                                (addOrderModel.FlightList.Find(n => !string.IsNullOrEmpty(n.CorpPolicy)) != null
                                    ? true
                                    : false),
                            OrderType = OrderSourceTypeEnum.Flt
                        };
                        _submitCorpAduitOrderServiceBll.Submit(submitCorpAduitOrder);
                    }

                    #endregion

                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    throw;
                }
            }
            string PNRstr  = "";                                                        //获取后邮件中使用
            string testCid = AppSettingsHelper.GetAppSettings(AppSettingsEnum.TestCid); //生产环境,测试帐号不许定位
            if (testCid != orderViewModel.Cid.ToString())
            {
                //3.调取pnr定位服务
                PNRstr = _getPnrNoServiceBll.GetPnrNo(orderid, operatorModel?.Email);
            }
            //4.发送提醒邮件
            new TaskFactory().StartNew(() =>
            {
                string mail               = operatorModel.Email;
                string corporationName    = addOrderModel.PassengerCustomerList[0].Corporation.CorpName;
                string operatorName       = addOrderModel.Cname;
                string dport              = addOrderModel.FlightList[0].Dport;
                string aport              = addOrderModel.FlightList[0].Aport;
                string aDate              = addOrderModel.FlightList[0].TackoffTime.ToString();
                string bDate              = addOrderModel.FlightList[0].ArrivalsTime.ToString();
                StringBuilder mailContent = new StringBuilder();
                mailContent.Append("<b>订单生成提醒:<b/>");
                mailContent.Append("<br/>");
                mailContent.Append("[" + corporationName + "] 已生成订单:" + orderid + ",请差旅顾问及时处理!");
                mailContent.Append("<br/>");
                mailContent.Append("联系人姓名:" + addOrderModel.Cname + "");
                mailContent.Append("<br/>");
                mailContent.Append("行程:" + dport + " - " + aport + "");
                mailContent.Append("<br/>");
                mailContent.Append("起飞时间:" + aDate + "");
                mailContent.Append("<br/>");
                mailContent.Append("抵达时间:" + bDate + "");
                mailContent.Append("<br/>");
                mailContent.Append("<b>下单时间:" + DateTime.Now + ",请及时关注~<b/>");
                if (!string.IsNullOrEmpty(mail))
                {
                    bool flag = EmailHelper.SendEmail("", "订单生成提醒", null, null, mailContent.ToString(), mail);
                }
            });

            return(new AddOrderResponseViewModel()
            {
                OrderId = orderid
            });
        }
        private void AsyncTraceReader()
        {
            var outputFolder = ResolveSettingsPath(AppSettingsHelper.GetAppSetting("OutputFolder"));

            while (true)
            {
                try
                {
                    if (this.tokenSource.IsCancellationRequested)
                    {
                        break;
                    }

                    Logger.Log($"Subscribing Trace: {traceId}");

                    if (conn.State != ConnectionState.Open)
                    {
                        conn.Open();
                    }

                    using (var cmd = conn.CreateCommand())
                    {
                        cmd.CommandText =
                            $@"<Subscribe xmlns=""http://schemas.microsoft.com/analysisservices/2003/engine"">
                                <Object xmlns=""http://schemas.microsoft.com/analysisservices/2003/engine""> 
                                    <TraceID>{traceId}</TraceID>
                                 </Object>
                            </Subscribe>";

                        using (var inputReader = XmlReader.Create(cmd.ExecuteXmlReader(), new XmlReaderSettings()
                        {
                            Async = true
                        }))
                        {
                            using (var data = new QueryableXEventData(inputReader, EventStreamSourceOptions.EventStream, EventStreamCacheOptions.CacheToDisk))
                            {
                                foreach (PublishedEvent evt in data)
                                {
                                    try
                                    {
                                        if (this.tokenSource.IsCancellationRequested)
                                        {
                                            break;
                                        }

                                        Logger.Debug($"{evt.Name} event received");

                                        var json = ConvertXEventToJSON(evt);

                                        var folder = Path.Combine(outputFolder, DateTime.Now.ToString("yyyyMMdd"));
                                        Directory.CreateDirectory(folder);

                                        //Writing to .jsonl file  http://jsonlines.org/
                                        var outputFile = Path.Combine(folder, string.Concat(evt.Name, ".jsonl"));

                                        var jsonStr = json.ToString(Newtonsoft.Json.Formatting.None);

                                        File.AppendAllLines(outputFile, new string[] { jsonStr });
                                    }
                                    catch (Exception ex)
                                    {
                                        Logger.Error(ex, "Error on QueryableXEventData");
                                    }
                                }

                                Logger.Log("Trace stopped");
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logger.Error(ex);
                }

                if (this.tokenSource.IsCancellationRequested)
                {
                    break;
                }

                Logger.Debug("Waiting 10s for server connection...");

                Thread.Sleep(10000);
            }
        }
Ejemplo n.º 27
0
        public SiteService(ISiteRepository repository, IValidationService validator, IModulesLoaded modulesLoaded, AppSettingsHelper appSettings)
        {
            IEnumerable <IOxiteCacheModule> modules = modulesLoaded.GetModules <IOxiteCacheModule>();

            this.repository  = repository;
            this.validator   = validator;
            this.cache       = modules != null && modules.Count() > 0 ? modules.Reverse().First() : null;
            this.appSettings = appSettings;
        }
Ejemplo n.º 28
0
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     SetupTitleBarAndBackButton();
     AppSettingsHelper.SaveSettingToLocalSettings(AppSettingsConstants.AppState, AppState.Active.ToString());
 }
Ejemplo n.º 29
0
        public void InitMusicPlayer()
        {
            _appSettingsHelper = new AppSettingsHelper();
            _player = new MediaPlayer();
            _wifiLock = ((WifiManager)GetSystemService(WifiService)).CreateWifiLock(WifiMode.Full, "playerLock");

            _player.SetWakeMode(ApplicationContext, WakeLockFlags.Partial);
            _player.SetAudioStreamType(Stream.Music);
            _player.SetOnPreparedListener(this);
            _player.SetOnCompletionListener(this);
            _player.SetOnErrorListener(this);

            _audioManager = (AudioManager) GetSystemService(AudioService);

            _mediaButtonReceiverComponent = new ComponentName(ApplicationContext,
                Class.FromType(typeof (HeadsetButtonsReceiver)));
            _audioManager.RegisterMediaButtonEventReceiver(_mediaButtonReceiverComponent);
        }
Ejemplo n.º 30
0
        /// <summary>
        /// 替换公司和客户标签
        /// </summary>
        /// <param name="row"></param>
        /// <param name="item"></param>
        /// <param name="client"></param>
        private void ReplaceClientCompanyKey(XWPFTableRow row, CrmOrderEntity item, CrmClientEntity client)
        {
            foreach (var cell in row.GetTableCells())
            {
                var text = cell.GetText().Trim();
                if (text.IsNullOrWhiteSpace())
                {
                    continue;
                }
                switch (text)
                {
                case "{Company:Name}":
                    text = text.Replace(text, AppSettingsHelper.GetString("Company:Name"));
                    break;

                case "{Company:Address}":
                    text = text.Replace(text, AppSettingsHelper.GetString("Company:Address"));
                    break;

                case "{Company:Tel}":
                    text = text.Replace(text, AppSettingsHelper.GetString("Company:Tel"));
                    break;

                case "制单人:{Company: Lister}":
                    text = text.Replace("{Company: Lister}", AppSettingsHelper.GetString("Company:Lister"));
                    break;

                case "NO. {dateTime}":
                case "发货日期:{dateTime}":
                    text = text.Replace("{dateTime}", DateTime.Today.ToString("yyyy-MM-dd"));
                    break;

                case "客户名称:{clientName}":
                    text = text.Replace("{clientName}", client.ClientName);
                    break;

                case "联系人:{clientRealName}":
                    text = text.Replace("{clientRealName}", client.RealName ?? client.ClientName);
                    break;

                case "客户地址:{clientAddress}":
                    var addr = Regex.Replace(item.FullAddress, @"[1]+\d{10}", ""); //手机
                    addr = Regex.Replace(addr, @"(\d{3,4}-)?\d{6,8}$", "");        //座机
                    text = text.Replace("{clientAddress}", addr.Replace(" ", ""));
                    break;

                case "电话:{clientTel}":
                    var tel = Regex.Match(item.FullAddress, @"[1]+\d{10}").Value;           //手机
                    if (tel.IsNullOrWhiteSpace())
                    {
                        tel = Regex.Match(item.FullAddress, @"(\d{3,4}-)?\d{6,8}$").Value;         //座机
                    }
                    text = text.Replace("{clientTel}", tel);
                    break;
                }

                // 为保留模板的格式
                foreach (var para in cell.Paragraphs)
                {
                    for (var i = 0; i < para.Runs.Count; i++)
                    {
                        para.Runs[i].SetText(i == para.Runs.Count - 1 ? text : "", 0);
                    }
                }
            }
        }
Ejemplo n.º 31
0
 public BaseLogger()
 {
     currentLogLevel = GetTraceLevelFromConfig();
     format          = AppSettingsHelper.GetAppSetting("logger.format", false, "[%prt][%tid][%dat][%cls.%mtd][%usr]: %msg ");
 }
Ejemplo n.º 32
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="photosDataServices"></param>
 public SearchPageViewModel(IPhotosDataServices photosDataServices)
 {
     _photosDataServices = photosDataServices;
     PhotosList          = new ObservableCollection <Photo>();
     AppSettings         = new AppSettingsHelper();
 }
Ejemplo n.º 33
0
        async void updateSaveSettings(string s)
        {
            try
            {
                if (SlctMru == null)
                {
                    return;
                }

                try
                {
                    if (mp_Vm.PlaybackSession.NaturalDuration == TimeSpan.Zero || (
                            SlctMru.PlayPosn.TotalSeconds >= mp_Vm.PlaybackSession.Position.TotalSeconds &&
                            SlctMru.PlayLeng == mp_Vm.PlaybackSession.NaturalDuration &&
                            SlctMru.LastPcNm == DevOp.MachineName))
                    {
                        return;
                    }

                    if (SlctMru.PlayPosn < mp_Vm.PlaybackSession.Position)
                    {
                        SlctMru.PlayPosn = mp_Vm.PlaybackSession.Position;
                    }
                    SlctMru.PlayLeng = mp_Vm.PlaybackSession.NaturalDuration;
                    SlctMru.LastPcNm = DevOp.MachineName;
                    SlctMru.LastUsed = DateTime.Now;

                    AppSettingsHelper.SaveStr(AppSetConst.Mru4Roam, JsonHelper.ToJson(MruLst));
                    AppSettingsHelper.SaveVal(AppSetConst.PagesTtl, PagesTtl);
                    AppSettingsHelper.SaveVal(AppSetConst.PlayRate, mp_Vm.PlaybackSession.PlaybackRate);

                    if (Dispatcher.HasThreadAccess)
                    {
                        TbInfo += $"{s}";
                    }
                    else
                    {
                        await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => TbInfo += $"{s}°");
                    }
                }
                catch (COMException ex)
                {
                    Debug.WriteLine($"$#~>{ex.Message}");
                    var min = MruLst.Min(x => x.LastUsed);
                    if (MruLst.Any(r => r.LastUsed == min))
                    {
                        var mru = MruLst.FirstOrDefault(r => r.LastUsed == min);
                        await Speak($"Max limit exceeded. Removing {mru.FileOnly}");

                        MruLst.Remove(mru);
                        updateSaveSettings("x");
                    }
                    else
                    {
                        await Speak($"the history has {MruLst.Count} files. i.e.: nothing to remove.");
                    }
                }
                catch (Exception ex) { Debug.WriteLine($"$#~>{ex.Message}"); if (Debugger.IsAttached)
                                       {
                                           Debugger.Break();
                                       }
                                       else
                                       {
                                           await popEx(ex, GetType().FullName);
                                       } }
            }
            finally { Debug.WriteLine($"{s}·"); }
        }
Ejemplo n.º 34
0
        public PageController(IEventService eventService, IScheduleItemService scheduleItemService, AppSettingsHelper appSettings)
        {
            this.eventService        = eventService;
            this.scheduleItemService = scheduleItemService;
            this.appSettings         = appSettings;

            ValidateRequest = false;
        }