コード例 #1
0
        public async Task <bool> AddWin10Builds(NewBuildPost apiModel)
        {
            if (apiModel == null)
            {
                return(false);
            }
            if (Membership.ValidateUser(apiModel.Username, apiModel.Password))
            {
                await _bModel.InsertAll(apiModel.NewBuilds.Select(nb => new Build
                {
                    MajorVersion = nb.MajorVersion,
                    MinorVersion = nb.MinorVersion,
                    Number       = nb.Number,
                    Revision     = nb.Revision,
                    Lab          = nb.Lab,
                    BuildTime    = nb.BuildTime.HasValue
                  ? DateTime.SpecifyKind(nb.BuildTime.Value, DateTimeKind.Utc)
                  : null as DateTime?,
                    Added      = DateTime.SpecifyKind(DateTime.UtcNow, DateTimeKind.Utc),
                    Modified   = DateTime.SpecifyKind(DateTime.UtcNow, DateTimeKind.Utc),
                    SourceType = TypeOfSource.PrivateLeak
                }));

                return(true);
            }
            return(false);
        }
コード例 #2
0
        public async Task <bool> AddWin10Builds(NewBuildPost apiModel)
        {
            if (apiModel == null)
            {
                return(false);
            }
            if (Membership.ValidateUser(apiModel.Username, apiModel.Password))
            {
                IEnumerable <Build> builds = apiModel.NewBuilds.Select(nb => new Build
                {
                    MajorVersion = nb.MajorVersion,
                    MinorVersion = nb.MinorVersion,
                    Number       = nb.Number,
                    Revision     = nb.Revision,
                    Lab          = nb.Lab,
                    BuildTime    = nb.BuildTime.HasValue
                        ? DateTime.SpecifyKind(nb.BuildTime.Value, DateTimeKind.Utc)
                        : null as DateTime?,
                    Added      = DateTime.SpecifyKind(DateTime.UtcNow, DateTimeKind.Utc),
                    Modified   = DateTime.SpecifyKind(DateTime.UtcNow, DateTimeKind.Utc),
                    SourceType = TypeOfSource.PrivateLeak
                });

                foreach (Build build in builds)
                {
                    await _bModel.Insert(build);

                    OneSignalClient osc = new OneSignalClient(ConfigurationManager.AppSettings["push:OneSignalApiKey"]);
                    osc.PushNewBuild(build,
                                     $"https://buildfeed.net{Url.Route("Build", new { controller = "Front", action = nameof(FrontController.ViewBuild), id = build.Id, area = "", httproute = "" })}?utm_source=notification&utm_campaign=new_build");
                }
                return(true);
            }
            return(false);
        }
コード例 #3
0
        public async Task <bool> AddWin10Builds(NewBuildPost apiModel)
        {
            if (apiModel == null)
            {
                return(false);
            }

            if (Membership.ValidateUser(apiModel.Username, apiModel.Password) &&
                (Roles.IsUserInRole(apiModel.Username, "Editors") ||
                 Roles.IsUserInRole(apiModel.Username, "Administrators")))
            {
                var generateOldItem = new Func <NewBuild, BuildDetails>(nb =>
                {
                    var bi = new BuildDetails
                    {
                        MajorVersion = nb.MajorVersion,
                        MinorVersion = nb.MinorVersion,
                        Number       = nb.Number,
                        Revision     = nb.Revision,
                        Lab          = nb.Lab,
                        BuildTime    = nb.BuildTime.HasValue
                            ? DateTime.SpecifyKind(nb.BuildTime.Value, DateTimeKind.Utc)
                            : null as DateTime?,
                        SourceType = TypeOfSource.PrivateLeak
                    };

                    return(bi);
                });

                var builds = apiModel.NewBuilds.Select(nb => new Build
                {
                    MajorVersion = nb.MajorVersion,
                    MinorVersion = nb.MinorVersion,
                    Number       = nb.Number,
                    Revision     = nb.Revision,
                    Lab          = nb.Lab,
                    BuildTime    = nb.BuildTime.HasValue
                        ? DateTime.SpecifyKind(nb.BuildTime.Value, DateTimeKind.Utc)
                        : null as DateTime?,
                    Added      = DateTime.SpecifyKind(DateTime.UtcNow, DateTimeKind.Utc),
                    Modified   = DateTime.SpecifyKind(DateTime.UtcNow, DateTimeKind.Utc),
                    SourceType = TypeOfSource.PrivateLeak,

                    History = new List <ItemHistory <BuildDetails> >
                    {
                        new ItemHistory <BuildDetails>
                        {
                            Type     = ItemHistoryType.Added,
                            Time     = DateTime.SpecifyKind(DateTime.UtcNow, DateTimeKind.Utc),
                            UserName = apiModel.Username,
                            Item     = generateOldItem(nb)
                        }
                    }
                });

                foreach (Build build in builds)
                {
                    await _bModel.Insert(build);

                    var osc = new OneSignalClient(ConfigurationManager.AppSettings["push:OneSignalApiKey"]);
                    osc.PushNewBuild(build,
                                     $"https://buildfeed.net{Url.Route("Build", new { controller = "Front", action = nameof(FrontController.ViewBuild), id = build.Id, area = "", httproute = "" })}?utm_source=notification&utm_campaign=new_build");
                }

                return(true);
            }

            return(false);
        }