コード例 #1
0
        static void Main(string[] args)
        {
            // 日志
            LogHelper.SetLogProvider(new NLogProvider());
            LogHelper.Debug("fdsfds", new Exception());

            //缓存
            CacheHelper.SetCacheProvider(new MemoryCacheProvider());
            CacheHelper.Set("aa", "sss");
            var ss = CacheHelper.Get("aa");

            Console.WriteLine(ss);

            //IOC
            IocHelper.SetIocProvider(new AutofacProvider());
            var test1 = IocHelper.GetInstance <Test1>();

            Console.WriteLine(test1.GetTest());

            //Json
            JsonSerializerHelper.SetJsonProvider(new FastJsonProvider());
            ss = test1.TestJson();
            Console.WriteLine(ss);
            Console.ReadKey();
        }
コード例 #2
0
        void QueryTicket()
        {
            #region--参数检测
            rtbTip.Text = string.Empty;
            ResourceManager rm = Lang.ResourceManager;
            List<string> nullItem = new List<string>();
            if (string.IsNullOrEmpty(ticketParam.from_station))
            {
                nullItem.Add(rm.GetString(langTipFix + cmbBeginStation.Tag));
            }
            if (string.IsNullOrEmpty(ticketParam.to_station))
            {
                nullItem.Add(rm.GetString(langTipFix + cmbToStation.Tag));
            }
            if (nullItem.Count > 0)
            {
                List<string> requireItem = new List<string>();
                requireItem.Add(rm.GetString(langTipFix + cmbBeginStation.Tag));
                requireItem.Add(rm.GetString(langTipFix + cmbToStation.Tag));
                rtbTip.Text = string.Format(Lang.Tip_12306_QueryTicketIsRequired, string.Join(",", requireItem), string.Join(",", nullItem));
                return;
            }
            #endregion
            string url = InitQueryTicketParam(ticketParam);
            string json = HttpClientExtend.HttpClientGet(url);
            LoggerWriter.CreateLogFile(json, LogDir, ELogType.DataLog, DateTime.Now.ToString(CommonFormat.DateTimeIntFormat) + ".txt");
            leftTicketDTOResponse response = json.ConvertObject<leftTicketDTOResponse>();//不能序列化字典
            JObject jr = JObject.Parse(json);
            JObject jd = (JObject)jr["data"];//字典为data下数据  map
            //由于json序列化时不能将节点下的字典型json串进行逆序列化,次出使用中转形式先读取取字典内容,在填充到对象
            JObject jdic = (JObject)jd["map"];
            Dictionary<string, string> _Data = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(jdic.ToString());
            if (response != null && response.data != null)
            {
                response.data.map = _Data;
            }
            //leftTicketDTOResponse responseNew= Newtonsoft.Json.JsonConvert.DeserializeObject<leftTicketDTOResponse>(json);
            /*
             * Newtonsoft
             其他信息: Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.String[]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly.
             */
            foreach (var item in response.data.result)
            {
                GetCarTicket(item, response);
            }
            //存储列车座位信息
            //反射时构造函数没有提供参数可以进行创建
            ISyncTicketDataManage sync = IocHelper.CreateObjectCtorWithParam<ISyncTicketDataManage>(
                new object[]{AppCategory.WinApp,"Conn" },
                typeof(SyncTicketDataManage).Name,
                "TicketData.Manage",
                "CaptureManage.AppWin",//此为程序集,而不是命名空间
                NowAppDirHelper.GetNowAppDir(AppCategory.WinApp));
             
            //由于实现类中对于构造函数存在参数限定,此处需要特殊参数的传递
            sync.SaveCarWithSeatData(response);
            //读取列车过站信息
            //存储列车过站信息,绘制运动轨迹图

        }
コード例 #3
0
ファイル: MainWindow.xaml.cs プロジェクト: fafnir901/fwd
        private void EmailSender_OnClick(object sender, RoutedEventArgs e)
        {
            var before = EmailSender.Header;

            try
            {
                EmailSender.Header = "Подаждите идет загрузка";
                IocHelper.ToggleToXml();
                Task task1 = Task.Factory.StartNew(() =>
                {
                    this.Dispatcher.Invoke((Action)(() =>
                    {
                        EmailSender.IsEnabled = false;
                    }));
                    Try(() => EmailService.Instance.SendMail("*****@*****.**", "Говно", "Получи говно"),
                        () => this.Dispatcher.Invoke((Action)(() =>
                    {
                        EmailSender.IsEnabled = true;
                        EmailSender.Header = before.ToString();
                    })));
                });
            }
            catch (Exception ex)
            {
                ShowMessage(ex.Message, "Ошибка", MessageBoxImage.Error);
            }
        }
コード例 #4
0
ファイル: UserController.cs プロジェクト: fafnir901/fwd
        public ActionResult SaveAvatar()
        {
            try
            {
                var file = CommonHelper.Instance.TempFiles.LastOrDefault();
                if (file != null)
                {
                    var user = CommonHelper.Instance.CurrentUser;
                    user.Avatar = file.ImageData;

                    var helper = new IocHelper();
                    helper.UserService.UpdateUser(user);
                    CommonHelper.Instance.TempFiles = new List <ImageResult>();
                    return(Json(true, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    throw new Exception("Аватар не был изменен");
                }
            }
            catch (Exception e)
            {
                throw new HttpException(500, e.Message);
            }
        }
コード例 #5
0
        public ActionResult GetPanel()
        {
            try
            {
                var helper = new IocHelper();
                var res    = helper.ArticleService.GetAllArticles(c => c.ArticleName);
                var list   = new List <ForPanel>();
                Func <IEnumerable <Tag>, string> define = (items) =>
                {
                    return
                        ("[{0}]".Fmt(string.Join(",", items
                                                 .OrderByDescending(c => c.Priority)
                                                 .Select(c => string.Format("{0}{5}Name{5}:{5}{1}{5},{5}TagColor{5}:{5}{2}{5},{5}Priority{5}:{5}{3}{5}{4}", "{", c.Name, c.TagColor, c.Priority, "}", "'")))));
                };
                if (res != null)
                {
                    list = res.Select(article => new ForPanel
                    {
                        Id            = article.ArticleId,
                        Name          = article.ArticleName,
                        Rate          = article.Rate,
                        CountOfImages = article.Images.Count,
                        CreationDate  = article.CreationDate,
                        Tags          = define(article.Tags)
                    }).OrderBy(c => c.Name).ToList();
                }
                return(Json(list, JsonRequestBehavior.AllowGet));
            }

            catch (Exception e)
            {
                throw new HttpException(500, e.Message);
            }
        }
コード例 #6
0
ファイル: TopMenuController.cs プロジェクト: fafnir901/fwd
        public FileResult ExprortCurrentFromDb(string articleId, string articleName)
        {
            try
            {
                if (IocHelper.CurrentToggle != "db")
                {
                    throw new Exception("Экспорт возможен только из БД");
                }
                var helper    = new IocHelper();
                int currentId = 0;
                int.TryParse(articleId, out currentId);
                using (var memoryStream = new MemoryStream())
                {
                    using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true))
                    {
                        var demoFile = archive.CreateEntry("{0}.xml".Fmt(articleName), CompressionLevel.Optimal);

                        using (var entryStream = demoFile.Open())
                            using (var streamWriter = new StreamWriter(entryStream))
                            {
                                streamWriter.Write(helper.ArticleService.ExportFromDb(currentId));
                            }
                    }
                    memoryStream.Seek(0, SeekOrigin.Begin);
                    return(File(memoryStream.ToArray(), "application/zip", "{0}.zip".Fmt(articleName)));
                }
            }
            catch (Exception e)
            {
                throw new HttpException(500, e.Message);
            }
        }
コード例 #7
0
ファイル: TopMenuController.cs プロジェクト: fafnir901/fwd
 public ActionResult SaveToDb(int?articleId)
 {
     try
     {
         if (articleId.HasValue)
         {
             var helper = new IocHelper();
             helper.ToggleToXml(true);
             var artilce = helper.ArticleService.GetArticleById(articleId.Value);
             var group   =
                 helper.GroupService.GetAllGroups(c => c.GroupId).FirstOrDefault(c => c.Groups.Contains(artilce.ArticleName));
             artilce.ArticleGroup = new ArticleGroup {
                 GroupName = group == null ? "Без группы" : group.GroupName
             };
             helper.ToggleToDb(true);
             helper.ArticleService.SaveArticle(artilce);
             helper.ToggleToXml(true);
             return(Json(true));
         }
         else
         {
             throw new Exception("Статьи не существует");
         }
     }
     catch (Exception e)
     {
         throw new HttpException(500, e.Message);
     }
 }
コード例 #8
0
        /// <summary>
        ///     检查设备标识
        /// </summary>
        /// <returns>
        ///     0:表示通过验证,可以继续
        ///     1:令牌为空
        ///     2:令牌是伪造的
        /// </returns>
        private int CheckDeviceId(HttpRequestMessage request, string token)
        {
            if (string.IsNullOrWhiteSpace(token) || token.Contains('.') || token.Length <= 33)
            {
                return(ErrorCode.DenyAccess);
            }
            for (var index = 1; index < token.Length; index++)
            {
                var ch = token[index];
                if ((ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') || ch == '_')
                {
                    continue;
                }
                return(ErrorCode.DenyAccess);
            }
            var checker = IocHelper.Create <IBearValidater>();
            ApiResult <LoginUserInfo> result;

            try
            {
                result = checker.ValidateDeviceId(token);
            }
            catch (Exception e)
            {
                LogRecorder.Exception(e);
                return(0); //ErrorCode.Auth_Device_Unknow;
            }
            if (!result.Result)
            {
                return(result.Status.ErrorCode);
            }
            CreateApiContext(result.ResultData, token);
            LogRecorder.MonitorTrace("Authorization:匿名用户");
            return(0);
        }
コード例 #9
0
        /// <summary>
        ///     还原调用上下文
        /// </summary>
        private int RevertCallContext(HttpRequestMessage request, string token)
        {
            //if (request.Headers.UserAgent.ToString() != "Yizuan.Service.WebApi.WebApiCaller")
            //    return ErrorCode.DenyAccess;
            //for (var index = 1; index < token.Length; index++)
            //{
            //    var ch = token[index];
            //    if ((ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') || ch == '-')
            //        continue;
            //    return ErrorCode.DenyAccess;
            //}
            ApiContext context;

            using (var proxy = new RedisProxy())
            {
                var key = ApiContext.GetCacheKey(token);
                context = proxy.Get <ApiContext>(key);
                proxy.RemoveKey(key);
            }
            if (context?.Request == null || context.LoginUser == null)
            {
                //return ErrorCode.DenyAccess;
                ApiContext.TryCheckByAnymouse();
                return(0);
            }
            var checker = IocHelper.Create <IBearValidater>();
            var result  = checker.ValidateServiceKey(context.Request.ServiceKey);

            if (!result.Result)
            {
                return(result.Status.ErrorCode);
            }
            ApiContext.SetContext(context);
            return(0);
        }
コード例 #10
0
        public async Task Filters_Should_Change_Final_Response_After_All_Handlers_Executed()
        {
            var sut = IocHelper.GetRequestBus(sc =>
            {
                sc.AddTransient <IResponseHandlerAsync <TestRequest, TestResult>, MainResponseHandler>();
                sc.AddTransient <IResponseHandlerAsync <TestRequest, TestResult>, DependentResponseHandler>();
                sc.AddTransient <IResponseFilterAsync <TestRequest, TestResult>, ResponseFilter>();
                sc.AddTransient <IResponseFilterAsync <TestRequest, TestResult>, ResponseFilterNotApplicable>();
            });

            var request = new TestRequest
            {
                Name = "Ruhul"
            };

            var rsp = await sut.ResponsesAsync <TestRequest, TestResult>(request);

            var mainRsp = rsp.MainResponse();
            var others  = rsp.OtherResponses().ToArray();

            mainRsp.ShouldNotBeNull();
            mainRsp.IsSucceed.ShouldBe(true);
            others.Length.ShouldBe(2);
            others.ShouldContain(x => x.Value.Message == $"{request.Name} filtered by {nameof(ResponseFilter)}");
        }
コード例 #11
0
        public async Task Should_Return_Collection_Of_Responses_From_All_Applicable_Handlers()
        {
            var sut = IocHelper.GetRequestBus(sc =>
            {
                sc.AddTransient <IResponseHandlerAsync <TestRequest, TestResult>, DependentResponseHandler>();
                sc.AddTransient <IResponseHandlerAsync <TestRequest, TestResult>, IndependentResponseHandler>();
                sc.AddTransient <IResponseHandlerAsync <TestRequest, TestResult>, MainResponseHandler>();
                sc.AddTransient <IResponseHandlerAsync <TestRequest, TestResult>, DependentNonApplicableResponseHandler>();
            });

            var request = new TestRequest
            {
                Name = "Ruhul"
            };

            var rsp = await sut.ResponsesAsync <TestRequest, TestResult>(request);

            var mainRsp = rsp.MainResponse();
            var others  = rsp.OtherResponses().ToArray();

            mainRsp.ShouldNotBeNull();
            others.Length.ShouldBe(2);
            mainRsp.IsSucceed.ShouldBe(true);
            others.ShouldAllBe(x => x.IsSucceed);
            others.ShouldAllBe(x => x.Value != null);
            mainRsp.Value.Message.ShouldBe($"{request.Name} : handled by {nameof(MainResponseHandler)}");
            others.ShouldContain(x =>
                                 x.Value.Message == $"{request.Name} : handled by {nameof(DependentResponseHandler)}");
            others.ShouldContain(x =>
                                 x.Value.Message == $"{request.Name} : handled by {nameof(IndependentResponseHandler)}");
            others.ShouldNotContain(x =>
                                    x.Value.Message == $"{request.Name} : handled by {nameof(DependentNonApplicableResponseHandler)}");
        }
コード例 #12
0
ファイル: ImageController.cs プロジェクト: fafnir901/fwd
        public async Task <FileContentResult> GetImageByArticleIdAndImageId(string articleID, string imageID, string size = null)
        {
            int articleIdCurrent, imageIdCurrent;
            var maybeArticleId = articleID.MaybeAs <string>().Bind(c => c.Split('-').Skip(1).Take(1).Last()).GetOrDefault("");
            var maybeImageId   = imageID.MaybeAs <string>().Bind(c => c.Split('-').Skip(1).Take(1).Last()).GetOrDefault("");
            var maybeSize      = size.MaybeAs <string>().Bind(c => c.Split('-').Skip(1).Take(1).Last()).GetOrDefault("");

            int.TryParse(maybeArticleId, out articleIdCurrent);
            int.TryParse(maybeImageId, out imageIdCurrent);

            var helper = new IocHelper();

            if (CommonHelper.Instance.CurrentArticle.ArticleId != articleIdCurrent)
            {
                CommonHelper.Instance.CurrentArticle = helper.ArticleService.GetArticleById(articleIdCurrent);
            }

            var images = CommonHelper.Instance.CurrentArticle.Images.Select(x => new ImageResult {
                ImageData = x.Data, Id = x.ImageId
            });
            var result        = images.FirstOrDefault(c => c.Id == imageIdCurrent);
            var reworkedImage = CommonHelper.Instance.DefineSizeOfImage(maybeSize, result);

            return(await Task.Factory.StartNew(() => File(reworkedImage.MaybeAs <ImageResult>().Bind(c => c.ImageData).GetOrDefault(null), "image/gif")));
        }
コード例 #13
0
        /// <summary>
        /// Create a new unit of work scope.
        /// </summary>
        public UnitOfWorkScope(bool isTransactional)
        {
            //There is already a uow, do nothing
            if (Current != null)
            {
                return;
            }

            //this scope started the uow
            _isStartedByThisScope = true;

            _unitOfWorkWrapper = IocHelper.ResolveAsDisposable <IUnitOfWork>();
            Current            = _unitOfWorkWrapper.Object;

            try
            {
                Current.Initialize(isTransactional);
                Current.Begin();
            }
            catch
            {
                Current = null;
                _unitOfWorkWrapper.Dispose();
                throw;
            }
        }
コード例 #14
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });
            services.AddMvc();
            IocHelper.AddSingleton <PlanManage>();
            ZeroApplication.RegistZeroObject <ApiCounter>();
            ZeroApplication.RegistZeroObject <PlanSubscribe>();
            ZeroApplication.RegistZeroObject <EventSub>();
            ZeroApplication.Initialize();
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

            //.AddJsonOptions(options =>
            // {
            //     //忽略循环引用
            //     options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
            //     //不使用驼峰样式的key
            //     options.SerializerSettings.ContractResolver = new DefaultContractResolver();
            //     //设置时间格式
            //     options.SerializerSettings.DateFormatString = "yyyy-MM-dd";
            // });
        }
コード例 #15
0
        /// <summary>
        /// 初始化,必须先调用
        /// </summary>
        public static void InitializeBase(bool bear)
        {
            if (IsInitialize)
            {
                return;
            }

            IocHelper.Update();
            IocHelper.AddScoped <GlobalContext, BusinessContext>();
            IocHelper.AddSingleton <IZeroPublisher, ZeroNetBridge>();
            IocHelper.AddSingleton <IGlobalContext, BusinessContext>(p => BusinessContext.Context);
            IocHelper.Update();

            Environment.CurrentDirectory = ConfigurationManager.BasePath = HttpContext.Current.Server.MapPath("~");

            LogRecorder.Initialize();
            LogRecorder.SystemLog("启动");
            LogRecorder.GetRequestIdFunc = () => RandomOperate.Generate(8);
            GlobalConfiguration.Configuration.MapHttpAttributeRoutes(new CustomDirectRouteProvider());
            HttpHandler.Handlers.Add(new CorsHandler());
            HttpHandler.Handlers.Add(new HttpIoLogHandler());
            if (bear)
            {
                HttpHandler.Handlers.Add(new BearerHandler());
            }
            IsInitialize = true;
        }
コード例 #16
0
        private static void PerformUow(IInvocation invocation, bool isTransactional)
        {
            using (var unitOfWork = IocHelper.ResolveAsDisposable <IUnitOfWork>())
            {
                try
                {
                    UnitOfWorkScope.Current = unitOfWork.Object;
                    UnitOfWorkScope.Current.Initialize(isTransactional);
                    UnitOfWorkScope.Current.Begin();

                    try
                    {
                        invocation.Proceed();
                        UnitOfWorkScope.Current.End();
                    }
                    catch
                    {
                        try { UnitOfWorkScope.Current.Cancel(); } catch { } //Hide exceptions on cancelling
                        throw;
                    }
                }
                finally
                {
                    UnitOfWorkScope.Current = null;
                }
            }
        }
コード例 #17
0
        /// <summary>
        /// 检查旧标识
        /// </summary>
        /// <returns>
        /// 0:表示通过验证,可以继续
        /// 1:令牌为空
        /// 2:令牌是伪造的
        /// </returns>
        int CheckServiceKey()
        {
            InternalCallContext context;

            try
            {
                context = JsonConvert.DeserializeObject <InternalCallContext>(token);
            }
            catch (Exception e)
            {
                LogRecorder.Exception(e);
                return(2);
            }

            var checker = IocHelper.Create <IBearValidater>();
            var result  = checker.ValidateServiceKey(context.ServiceKey.ToString());

            if (!result.Result)
            {
                return(result.Status.ErrorCode);
            }
            if (context.UserId > 0)
            {
                var user = checker.GetUserProfile(context.UserId);
                if (!user.Result)
                {
                    return(user.Status.ErrorCode);
                }
                ApiContext.SetCustomer(user.ResultData);
            }
            ApiContext.SetRequestContext(context);
            return(0);
        }
コード例 #18
0
        public ActionResult SaveNewGroup(string group)
        {
            try
            {
                var helper = new IocHelper();
                var res    = IocHelper.CurrentToggle == "xml"
                                        ? helper.GroupService.GetGroupsByParams(c => c.GroupName == group, c => c.GroupId, 0, 1).FirstOrDefault()
                                        : helper.GroupService.GetAllGroups(c => c.GroupId).FirstOrDefault(c => c.GroupName == group);

                if (res != null)
                {
                    throw new Exception(string.Format("Группа \"{0}\" уже существует", group));
                }
                var groupArticle = new ArticleGroup
                {
                    GroupName = group,
                    Groups    = new List <string>()
                };
                helper.GroupService.SaveGroup(groupArticle);
                return(Json(true));
            }
            catch (Exception e)
            {
                throw new HttpException(500, e.Message);
            }
        }
コード例 #19
0
ファイル: TopMenuController.cs プロジェクト: fafnir901/fwd
        public ActionResult Import(HttpPostedFileBase[] files)
        {
            try
            {
                var buffer = new byte[files.First().ContentLength];
                if (!files.First().ContentType.Contains("xml"))
                {
                    throw new Exception("Не верный тип файла " + files.First().ContentType);
                }
                files.First().InputStream.Read(buffer, 0, files.First().ContentLength);

                var isDb          = IocHelper.CurrentToggle == "db";
                var helper        = new IocHelper();
                var unmatched     = helper.ArticleService.Import(isDb, buffer);
                var stringBuilder = new StringBuilder();
                if (unmatched.Count == 0)
                {
                    stringBuilder.Append("Импорт прошел успешно");
                }
                else
                {
                    foreach (var res in unmatched)
                    {
                        stringBuilder.Append(string.Format("{0}.<br>", res));
                    }
                }
                return(Json(stringBuilder.ToString(), JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                throw new HttpException(500, e.Message);
            }
        }
コード例 #20
0
        public ActionResult GetArticleById(string articleID)
        {
            try
            {
                var maybeId = articleID.MaybeAs <string>().Bind(c => c.Split('-').Skip(1).Take(1).Last()).GetOrDefault("");
                int currentId;
                int.TryParse(maybeId, out currentId);
                var helper = new IocHelper();
                CommonHelper.Instance.CurrentArticle = helper.ArticleService.GetArticleById(currentId);
                var dto    = new ArticleDto(CommonHelper.Instance.CurrentArticle);
                var groups = helper.GroupService.GetAllGroups(c => c.GroupName, 0, 999).ToList();
                if (IocHelper.CurrentToggle == "xml")
                {
                    dto.Group = groups.FirstOrDefault(c => c.Groups.FirstOrDefault(x => x == dto.ArticleName) != null)
                                .MaybeAs <ArticleGroup>()
                                .Bind(c => c.GroupName)
                                .GetOrDefault(null);
                }

                return(Json(dto, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                throw new HttpException(500, e.Message);
            }
        }
コード例 #21
0
ファイル: DbFactory.cs プロジェクト: ewin66/CodeGenerator-7
 static DbFactory()
 {
     _dbrepositoryContainer = new IocHelper();
     _dbrepositoryContainer.RegisterType <IRepository, SqlServerRepository>(DatabaseType.SqlServer.ToString());
     _dbrepositoryContainer.RegisterType <IRepository, MySqlRepository>(DatabaseType.MySql.ToString());
     _dbrepositoryContainer.RegisterType <IRepository, PostgreSqlRepository>(DatabaseType.PostgreSql.ToString());
 }
コード例 #22
0
ファイル: Startup.cs プロジェクト: kuroblog/WebAPI
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            #region iochelper
            IocHelper.ServiceCollection.Configure <HisOptions>(Configuration.GetSection(nameof(HisOptions)));
            IocHelper.AddScoped <IHisProxyInterface, HisSocketProxy>();
            IocHelper.AddScoped <IHisProxyInterface, HisWebSvcProxy>();
            IocHelper.AddScoped <ProxyFactory>();
            IocHelper.AddScoped <IProxyService, ProxyService>();

            ZeroApplication.Initialize();
            #endregion

            #region standard
            //services.AddOptions();
            //services.Configure<HisOptions>(Configuration.GetSection(nameof(HisOptions)));

            //services.AddScoped<IHisProxyInterface, HisSocketProxy>();
            //services.AddScoped<IHisProxyInterface, HisWebSvcProxy>();
            //services.AddScoped<ProxyFactory>();
            //services.AddScoped<IProxyService, ProxyService>();
            #endregion

            var i = new AutoRegister() as IAutoRegister;
            i.Initialize();
            i.AutoRegist();

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

            //services.AddScoped<IFoo, Foo>();
        }
コード例 #23
0
ファイル: PlanController.cs プロジェクト: ym1100/MicroZero
 public IActionResult Add()
 {
     try
     {
         var result = IocHelper.Create <PlanManage>().NewPlan(new ClientPlan
         {
             plan_type   = (plan_date_type)GetIntArg("plan_type"),
             plan_value  = GetShortArg("plan_value"),
             plan_repet  = GetIntArg("plan_repet"),
             description = GetArg("description"),
             command     = GetArg("command"),
             station     = GetArg("station"),
             context     = GetArg("context"),
             argument    = GetArg("argument"),
             no_skip     = GetBoolArg("no_skip"),
             plan_time   = GetDateArg2("plan_time1"),
             skip_set    = GetIntArg("skip_set")
         });
         return(new JsonResult(result));
     }
     catch (Exception ex)
     {
         return(new JsonResult(ApiResult.Error(ErrorCode.LocalException, ex.Message)));
     }
 }
コード例 #24
0
ファイル: Startup.cs プロジェクト: kuroblog/WebAPI
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            #region standard api
            services.AddOptions();
            services.Configure <HospProxySettings>(Configuration.GetSection(nameof(HospProxySettings)));
            services.AddScoped <ITestService, TestService>();
            //IocHelper.AddScoped<IHospProxyService, HospWebProxyService>();
            //IocHelper.AddScoped<IProxyService, ProxyService>();
            #endregion

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

            #region zmq api
            IocHelper.ServiceCollection.Configure <HospProxySettings>(Configuration.GetSection(nameof(HospProxySettings)));
            IocHelper.AddScoped <ITestService, TestService>();
            IocHelper.AddScoped <IHospProxyService, HospWebProxyService>();
            IocHelper.AddScoped <IProxyService, ProxyService>();

            ZeroApplication.Initialize();

            var iar = new AutoRegister();
            iar.Initialize();
            iar.AutoRegist();
            #endregion
        }
コード例 #25
0
        public ActionResult GetGroups()
        {
            try
            {
                var helper = new IocHelper();
                var res    = helper.ArticleService.GetAllArticles(c => c.ArticleName);
                var groups = helper.GroupService.GetAllGroups(c => c.GroupId);
                var lst    = new List <ForGroupPanel>();
                if (IocHelper.CurrentToggle == "xml")
                {
                    var groupView = GroupHelper.Instance.GetXmlGroups(groups, res ?? new List <Article>());
                    lst = groupView.GroupViewItems.Select(c => new ForGroupPanel(c)).ToList();
                }
                else
                {
                    var groupView = GroupHelper.Instance.GetDbGroups(groups);
                    lst = groupView.GroupViewItems.Select(c => new ForGroupPanel(c)).OrderBy(c => c.Name).ToList();
                }

                return(Json(lst, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                throw new HttpException(500, e.Message);
            }
        }
コード例 #26
0
        public void Should_Return_Collection_Of_Responses_From_All_Applicable_Handlers()
        {
            var sut = IocHelper.GetRequestBus(sc =>
            {
                sc.AddTransient <IResponseHandler <TestRequest, TestResult>, DependentResponseHandler>();
                sc.AddTransient <IResponseHandler <TestRequest, TestResult>, IndependentResponseHandler>();
                sc.AddTransient <IResponseHandler <TestRequest, TestResult>, MainResponseHandler>();
                sc.AddTransient <IResponseHandler <TestRequest, TestResult>, DependentNonApplicableResponseHandler>();
            });

            var request = new TestRequest
            {
                Name = "Ruhul"
            };

            var rsp = sut.Responses <TestRequest, TestResult>(request);

            rsp.MainResponse().IsSucceed.ShouldBe(true);
            rsp.MainResponse().Value.ShouldNotBeNull();
            rsp.MainResponse().Value.Message.ShouldBe($"{request.Name} : handled by {nameof(MainResponseHandler)}");
            rsp.OtherResponses().Count().ShouldBe(2);
            rsp.OtherResponses().ShouldContain(x => x.Value.Message == $"{request.Name} : handled by {nameof(DependentResponseHandler)}");
            rsp.OtherResponses().ShouldContain(x => x.Value.Message == $"{request.Name} : handled by {nameof(IndependentResponseHandler)}");
            rsp.OtherResponses().ShouldNotContain(x => x.Value.Message == $"{request.Name} : handled by {nameof(DependentNonApplicableResponseHandler)}");
        }
コード例 #27
0
ファイル: MainWindow.xaml.cs プロジェクト: fafnir901/fwd
 private void UpdateToXml_OnClick(object sender, RoutedEventArgs e)
 {
     try
     {
         Article article;
         if (!_isGroupsVisible)
         {
             article = GetArticlesFromListBox().FirstOrDefault() ?? _viewingArticle;
         }
         else
         {
             article = TreeViewHelper.Instance.GetArticleFromTreeView(ArticleTreeView, Articles) ?? _viewingArticle;
         }
         if (!isXml)
         {
             IocHelper.ToggleToXml();
         }
         if (article == null)
         {
             throw new Exception("Не выбран элемент для обновления.");
         }
         IocHelper.ArticleService.UpdateArticle(article);
         JustHelper.ToggleToRightSource(isXml);
         ShowMessage(string.Format("Статья \"{0}\" успешно обновлена в XML.", article.ArticleName));
     }
     catch (Exception ex)
     {
         ShowMessage(ex.Message, "Ошибка", MessageBoxImage.Error);
         JustHelper.ToggleToRightSource(isXml);
     }
 }
コード例 #28
0
ファイル: BearerHandler.cs プロジェクト: wondial/EntityModel
        /// <summary>
        ///     检查设备标识
        /// </summary>
        /// <returns>
        ///     0:表示通过验证,可以继续
        ///     1:令牌为空
        ///     2:令牌是伪造的
        /// </returns>
        private int CheckDeviceId(string token)
        {
            if (Request.RequestUri.LocalPath == "/v1/oauth/getdid")
            {
                return(ErrorCode.Success);
            }

            IBearValidater            checker = IocHelper.Create <IBearValidater>();
            ApiResult <LoginUserInfo> result;

            try
            {
                result = checker.ValidateDeviceId(token);
            }
            catch (Exception ex)
            {
                LogRecorder.Exception(ex);
                return(ErrorCode.Success);
            }
            if (!result.Success)
            {
                return(result.Status.ErrorCode);
            }
            CreateApiContext(result.ResultData, token);
            LogRecorder.MonitorTrace("Authorization:匿名用户");
            return(ErrorCode.Success);
        }
コード例 #29
0
 static DbHelperFactory()
 {
     _container = new IocHelper();
     _container.RegisterType <DbHelper, SqlServerHelper>(DatabaseType.SqlServer.ToString());
     _container.RegisterType <DbHelper, MySqlHelper>(DatabaseType.MySql.ToString());
     _container.RegisterType <DbHelper, PostgreSqlHelper>(DatabaseType.PostgreSql.ToString());
 }
コード例 #30
0
        /// <summary>
        /// 重写拦截层
        /// </summary>
        /// <param name="actionContext"></param>
        public override void OnAuthorization(HttpActionContext actionContext)
        {
            IUnityContainer           unityContainer           = new IocHelper("AuthorizationApi").GetUnityContainer();
            IAuthorizationApplication authorizationApplication = unityContainer.Resolve <IAuthorizationApplication>();

            bool flag        = authorizationApplication.DoAuthorization(actionContext);
            var  resultModel = authorizationApplication.TokenResult;

            if (flag)
            {
                IsAuthorized(actionContext);
                return;
            }
            ResponseBaseViewModel <string> responseView = new ResponseBaseViewModel <string>();

            responseView.Flag = new ResponseCodeViewModel()
            {
                Code        = (int)resultModel.Code,
                Message     = "",
                MojoryToken = resultModel.Token
            };

            actionContext.Response = new HttpResponseMessage
            {
                Content = new StringContent(Json.Encode(responseView), Encoding.UTF8, "application/json")
            };
        }