Example #1
0
        public Session GetLoginSession(string username, string password)
        {
            Session httpResponse = new Session();

            Logging.Info("request", "Received request for GetLoginSession");
            Logging.Info("GetLoginSession", "username: "******"GetLoginSession", "Begins.");
            UserInformation userInformation = SessionHelpers.Login(username, password);

            if (userInformation == null)
            {
                statusCode           = (int)HttpStatusCode.Forbidden;
                httpResponse.Message = "boom";
            }
            else
            {
                httpResponse.Message  = "good";
                httpResponse.username = userInformation.userName;
                Random random = new System.Random();
                string sessionId;
                while (true)
                {
                    sessionId = GenericHelpers.CreateMD5(random.Next(114514, 1919810).ToString());
                    string sessionKeyName = "EARTH_FUSION_SESSION_" + sessionId;
                    if (RedisHelpers.GetString(sessionKeyName) == null)
                    {
                        RedisHelpers.SetString(sessionKeyName, userInformation.userId.ToString());
                        // three hour
                        RedisHelpers.SetKeyExpireTime(sessionKeyName, 3 * 60 * 60);
                        break;
                    }
                }
                httpResponse.sessionId = sessionId;
            }
            httpResponse.StatusCode = statusCode;
            this.HttpContext.Response.StatusCode = statusCode;
            Logging.Info("request", "Reponse returned for GetLoginSession");
            return(httpResponse);
        }
    private void EndGame()
    {
        UpdateChallengeProgression();

        if (PlayerPrefs.GetInt("GameMode") == GameMode.Tournament.GetHashCode() && _isWinner)
        {
            int nbOpponents        = PlayerPrefs.GetInt("NbOpponents");
            var tournamentOpponent = PlayerPrefs.GetInt("TournamentOpponent", 0);
            tournamentOpponent++;
            if (tournamentOpponent <= nbOpponents)
            {
                GenericHelpers.ResetGameInProgress();
                PlayerPrefs.SetInt("TournamentOpponent", tournamentOpponent);
                SceneManager.LoadScene("TournamentMatch");
                return;
            }
            else if (PlayerPrefs.GetInt("Tournament", 0) <= PlayerPrefs.GetInt("CurrentChallengeDifficulty"))
            {
                PlayerPrefs.SetInt("Tournament", PlayerPrefs.GetInt("CurrentChallengeDifficulty") + 1);
            }
        }

        PlayerPrefs.SetInt("GameInProgress", 0);
        if (PlayerPrefs.GetInt("Ads", 1) == 1)
        {
            SceneManager.LoadScene("AdScene");
        }
        else
        {
            if (PlayerPrefs.GetInt("GameMode") == GameMode.Target.GetHashCode() ||
                PlayerPrefs.GetInt("GameMode") == GameMode.Catch.GetHashCode() ||
                PlayerPrefs.GetInt("GameMode") == GameMode.Breakout.GetHashCode() ||
                PlayerPrefs.GetInt("GameMode") == GameMode.Tournament.GetHashCode())
            {
                SceneManager.LoadScene("ChallengesMenu");
            }
            else
            {
                SceneManager.LoadScene("CharSelScene");
            }
        }
    }
Example #3
0
        /// <summary>
        /// Executes a SQL query that returns a list of rows as the result.
        /// </summary>
        /// <param name="commandText">The MySQL query to execute</param>
        /// <param name="parameters">Parameters to pass to the MySQL query</param>
        /// <returns>A list of a Dictionary of Key, values pairs representing the
        /// ColumnName and corresponding value</returns>
        public List <Dictionary <string, string> > Query(string commandText, Dictionary <string, object> parameters)
        {
            List <Dictionary <string, string> > rows = null;

            if (String.IsNullOrEmpty(commandText))
            {
                throw new ArgumentException("Command text cannot be null or empty.");
            }

            try
            {
                EnsureConnectionOpen();
                var command = CreateCommand(commandText, parameters);

                using (NpgsqlDataReader reader = command.ExecuteReader())
                {
                    rows = new List <Dictionary <string, string> >();
                    while (reader.Read())
                    {
                        var row = new Dictionary <string, string>();
                        for (var i = 0; i < reader.FieldCount; i++)
                        {
                            var columnName  = reader.GetName(i);
                            var columnValue = reader.IsDBNull(i) ? null : reader.GetValue(i); //.GetString(i);
                            row.Add(columnName, GenericHelpers.NullToString(columnValue));
                        }
                        rows.Add(row);
                    }
                }
                EnsureConnectionClosed();
            }
            catch (NpgsqlException ex)
            {
                System.Console.WriteLine("Exception; " + ex.InnerException);
            }
            finally
            {
                EnsureConnectionClosed();
            }

            return(rows);
        }
 private static IEnumerable <User> GenerateRandomUsers(int userCount, string domainName)
 {
     while (userCount-- > 0)
     {
         string userName = GenericHelpers.GenerateRandomEntityName();
         User   user     = new User
         {
             AccountEnabled  = true,
             MailNickname    = userName,
             DisplayName     = userName,
             PasswordProfile = new PasswordProfile()
         };
         user.PasswordProfile.Password = "******";
         user.PasswordProfile.ForceChangePasswordNextSignIn = false;
         user.UserPrincipalName = $"{userName}@{domainName}";
         user.UsageLocation     = "US";
         user.JobTitle          = "RandomlyCreatedTestUser";
         yield return(user);
     }
 }
Example #5
0
        internal T ConvertToT <R>(R input, T oldValue)
        {
            try
            {
                if (typeof(T) == typeof(CustomSortOrder))
                {
                    return((T)Enum.Parse(typeof(CustomSortOrder), input.ToString()));
                }
                else
                {
                    return((T)Convert.ChangeType(input, typeof(T)));
                }
            }
            catch (Exception ex)
            {
                GenericHelpers.LogException("ConvertToT", ex);
            }

            return(oldValue);
        }
Example #6
0
        public ActionResult LogOff()
        {
            AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
            //login audit
            string userid = HttpContext.GetOwinContext().Request.User.Identity.GetUserId();

            if (!string.IsNullOrEmpty(userid))
            {
                var ip = GenericHelpers.GetUserIPAddress();
                if (!string.IsNullOrEmpty(ip))
                {
                    LoginAudits auditRecord = LoginAudits.CreateAuditEvent(Guid.NewGuid().ToString(), userid, en_LoginAuditEventType.LogOut, ip);
                    if (auditRecord != null)
                    {
                        int auditRecording = _loginAuditRepository.Insert(auditRecord);
                    }
                }
            }
            return(RedirectToAction("Index", "Home"));
        }
Example #7
0
        /// <summary>
        /// 寻找下一步的执行人
        /// 一般用于本节点审核完成后,修改流程实例的当前执行人,可以做到通知等功能
        /// </summary>
        /// <returns></returns>
        private string GetNextMakers(FlowRuntime wfruntime, NodeDesignateReq request = null)
        {
            string makerList = "";

            if (wfruntime.nextNodeId == "-1")
            {
                throw (new Exception("无法寻找到下一个节点"));
            }

            if (wfruntime.nextNodeType == 0) //如果是会签节点
            {
                makerList = GetForkNodeMakers(wfruntime, wfruntime.nextNodeId);
            }
            else if (wfruntime.nextNode.setInfo.NodeDesignate == Setinfo.RUNTIME_SPECIAL_ROLE)
            { //如果是运行时指定角色
                if (wfruntime.nextNode.setInfo.NodeDesignate != request.NodeDesignateType)
                {
                    throw new Exception("前端提交的节点权限类型异常,请检查流程");
                }
                var users = _revelanceApp.Get(Define.USERROLE, false, request.NodeDesignates);
                makerList = GenericHelpers.ArrayToString(users, makerList);
            }
            else if (wfruntime.nextNode.setInfo.NodeDesignate == Setinfo.RUNTIME_SPECIAL_USER)
            {  //如果是运行时指定用户
                if (wfruntime.nextNode.setInfo.NodeDesignate != request.NodeDesignateType)
                {
                    throw new Exception("前端提交的节点权限类型异常,请检查流程");
                }
                makerList = GenericHelpers.ArrayToString(request.NodeDesignates, makerList);
            }
            else
            {
                makerList = GetNodeMarkers(wfruntime.nextNode);
                if (string.IsNullOrEmpty(makerList))
                {
                    throw (new Exception("无法寻找到节点的审核者,请查看流程设计是否有问题!"));
                }
            }

            return(makerList);
        }
Example #8
0
        public UserResponse CreateNew(string username, string password)
        {
            if (_context.Users.FirstOrDefault(x => x.Name == username) != null)
            {
                return(null);
            }

            var newUser = new User
            {
                Id           = GenericHelpers.GenerateId(),
                Name         = username,
                PasswordHash = ComputeSha256Hash(password),
                Role         = "user"
            };

            _context.Users.Add(newUser);

            _context.SaveChanges();

            return(new UserResponse(newUser, GenerateToken(newUser)));
        }
Example #9
0
        public void TestAutoSuggest()
        {
            NavigationHelper.NavigationToURL("https://demos.telerik.com/kendo-ui/autocomplete/index");
            //Step 1 - to supply the initial string
            //var textbox = ObjectRepository.Driver.FindElement(By.Id("countries"));
            TextBoxHelper.TypeInTextbox(By.Id("countries"), "a");
            Thread.Sleep(1000);

            // Step 2 - Wait for auto suggestion list
            var wait     = GenericHelpers.GetWebDriverWait(TimeSpan.FromSeconds(40));
            var elements = wait.Until(GetAllElements(By.XPath("//ul[@id='countries_listbox']/child::li")));

            foreach (var ele in elements)
            {
                if (ele.Text.Equals("Albania"))
                {
                    ele.Click();
                }
            }
            Thread.Sleep(1000);
        }
Example #10
0
        /// <summary>
        /// 寻找该节点执行人
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        private string GetNodeMakers(FlowNode node)
        {
            string makerList = "";

            if (node.setInfo != null)
            {
                if (node.setInfo.NodeDesignate == Setinfo.ALL_USER)//所有成员
                {
                    makerList = "1";
                }
                else if (node.setInfo.NodeDesignate == Setinfo.SPECIAL_USER)//指定成员
                {
                    makerList = GenericHelpers.ArrayToString(node.setInfo.NodeDesignateData.users, makerList);
                }
                else if (node.setInfo.NodeDesignate == Setinfo.SPECIAL_ROLE)  //指定角色
                {
                    var users = _revelanceApp.Get(Define.USERROLE, false, node.setInfo.NodeDesignateData.roles);
                    makerList = GenericHelpers.ArrayToString(users, makerList);
                }
            }
            return(makerList);
        }
Example #11
0
 public static BattlelogPlayerCountsViewModel CompanionPlayerCountsToBattlelog(this ServerDetailsViewModel serverDetails)
 {
     return(new BattlelogPlayerCountsViewModel {
         Map = serverDetails.MapName,
         MapMode = (ulong)GenericHelpers.GameModeToEnum(serverDetails.MapMode),
         Players = 0,
         Queued = 0,
         Slots = new BattlelogSlotTypesViewModel {
             Queue = new BattlelogSlotsViewModel {
                 Current = serverDetails.Slots.Queue.Current,
                 Max = serverDetails.Slots.Queue.Max
             },
             Soldier = new BattlelogSlotsViewModel {
                 Current = serverDetails.Slots.Soldier.Current,
                 Max = serverDetails.Slots.Soldier.Max
             },
             Spectator = new BattlelogSlotsViewModel {
                 Current = serverDetails.Slots.Spectator.Current,
                 Max = serverDetails.Slots.Spectator.Max
             }
         }
     });
 }
Example #12
0
 public ActionResult Create(Contact contact, string SortOrder, string SortDirection, int?page,
                            string search)
 {
     if (ModelState.IsValid)
     {
         var ravenDB = HttpContext.GetOwinContext().Get <IDocumentSession>();
         contact.Updated = DateTime.Now;
         ravenDB.Store(contact);
         ravenDB.SaveChanges();
         TempData["IsValid"] = "";
         return(RedirectToAction("Edit", new
         {
             id = GenericHelpers.Base64Encode(contact.Id),
             SortOrder = SortOrder,
             SortDirection = SortDirection,
             page = page,
             search = search,
             Class = "Contact"
         }));
     }
     TempData["IsValid"] = "Ko";
     return(PartialView(contact));
 }
Example #13
0
        private IHandlerRegistration AddHandlers(IHandlerRegistration handlerReg, IQueue queue)
        {
            //This is gonna be a bit NASTY
            //For this queue we need to find all the types we're currently holding handlers for
            //then add the internal onMessageReceived handler for each type
            //The reason for all this is calling consume on a queue with existing handlers for types
            //wipes them out and we have to add all type handlers again - so each time a type is added to be subscribed to
            //the whole previous set need to be re-added

            foreach (Type requestType in EntityTypes.EntityRequestAndResponseTypes)
            {
                foreach (Type entityType in EntityTypes.EntityBaseTypes)
                {
                    var requestWithEntityType   = requestType.MakeGenericType(entityType);
                    var queueMessageHandlerType = typeof(QueueMessageHandler <>).MakeGenericType(requestWithEntityType);
                    var queueMessageHandlerList = GenericHelpers.InvokeGenericMethod(_handlerManager, requestWithEntityType, typeof(IList), "GetHandlersForType", queue.Name);
                    var list = queueMessageHandlerList as IList;

                    if (list != null && list.Count > 0)
                    {
                        var messageType    = typeof(IMessage <>).MakeGenericType(requestWithEntityType);
                        var addParamType   = typeof(Action <,>).MakeGenericType(messageType, typeof(MessageReceivedInfo));
                        var addMethod      = GenericHelpers.GetMethodExt(handlerReg.GetType(), "Add", handlerReg.GetType(), addParamType);
                        var addMethodTyped = addMethod.MakeGenericMethod(requestWithEntityType);

                        var onMessageMethod      = GenericHelpers.GetMethodExt(this.GetType(), "OnMessageReceived", typeof(void), new Type[] { messageType, typeof(MessageReceivedInfo) });
                        var onMessageMethodTyped = onMessageMethod.MakeGenericMethod(requestWithEntityType);

                        var action = Delegate.CreateDelegate(addParamType, this, onMessageMethodTyped);

                        handlerReg = (IHandlerRegistration)addMethodTyped.Invoke(handlerReg, new object[] { action });
                    }
                }
            }

            return(handlerReg);
        }
Example #14
0
        public static string GetDeviceReport(RequestManager requestManager)
        {
            IEnumerable <Device> devices;

            using (var builder = GraphRequestBuilder <Device> .GetBuilder <DeviceCollectionResponseHandler>(requestManager, out devices))
            {
                builder.Devices.Request().Select("operatingSystem, isManaged, isCompliant").Top(999).GetAsync().Wait();
                foreach (var filter in GenericHelpers.GenerateFilterRangesForAlphaNumProperties("displayName"))
                {
                    builder.Devices.Request().Select("operatingSystem, isManaged, isCompliant").Top(999).Filter(filter).GetAsync().Wait();
                }
            }
            var report = devices.Distinct(new GenericHelpers.EntityComparer()).Cast <Device>()
                         .GroupBy(d => $"OS: {d.OperatingSystem ?? "null"}, isManaged: {d.IsManaged ?? false}, isCompliant: {d.IsCompliant ?? false}")
                         .Select(g => new { DeviceCategory = g.Key, DeviceCount = g.Count() });

            StringBuilder sb = new StringBuilder();

            foreach (var line in report.OrderByDescending(l => l.DeviceCount))
            {
                sb.AppendLine($"{line.DeviceCategory} - Count: {line.DeviceCount}");
            }
            return(sb.ToString());
        }
        static bool Prefix(PartyVM __instance, SelectorVM <SelectorItemVM> s)
        {
            try
            {
                if (!__instance.CurrentCharacter.IsPrisoner && s.SelectedIndex != (int)__instance.CurrentCharacter.Character.CurrentFormationClass)
                {
                    var newFormation   = (FormationClass)s.SelectedIndex;
                    var name           = __instance.CurrentCharacter.Character.Name.ToString();
                    var savedFormation = new SavedFormation()
                    {
                        TroopName = name, Formation = newFormation
                    };
                    PartyManagerSettings.Settings.SavedFormations[name] = savedFormation;
                    PartyManagerSettings.Settings.SaveSettings();
                    GenericHelpers.LogDebug("PartyVMUpdateCurrentCharacterFormationPatch", $"{name}:{newFormation}");
                }
            }
            catch (Exception e)
            {
                GenericHelpers.LogException("PartyVMUpdateCurrentCharacterFormationPatch", e);
            }

            return(true);
        }
Example #16
0
        /// <summary>
        /// 寻找该节点执行人
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        private string GetNodeMarkers(FlowNode node, string flowinstanceCreateUserId = "")
        {
            string makerList = "";

            if (node.type == FlowNode.START && (!string.IsNullOrEmpty(flowinstanceCreateUserId))) //如果是开始节点,通常情况下是驳回到开始了
            {
                makerList = flowinstanceCreateUserId;
            }
            else if (node.setInfo != null)
            {
                if (node.setInfo.NodeDesignate == Setinfo.ALL_USER) //所有成员
                {
                    makerList = "1";
                }
                else if (node.setInfo.NodeDesignate == Setinfo.SPECIAL_USER) //指定成员
                {
                    makerList = GenericHelpers.ArrayToString(node.setInfo.NodeDesignateData.users, makerList);
                }
                else if (node.setInfo.NodeDesignate == Setinfo.SPECIAL_ROLE) //指定角色
                {
                    var users = _revelanceApp.Get(Define.USERROLE, false, node.setInfo.NodeDesignateData.roles);
                    makerList = GenericHelpers.ArrayToString(users, makerList);
                }
                else if (node.setInfo.NodeDesignate == Setinfo.RUNTIME_SPECIAL_ROLE ||
                         node.setInfo.NodeDesignate == Setinfo.RUNTIME_SPECIAL_USER)
                {
                    //如果是运行时选定的用户,则暂不处理。由上个节点审批时选定
                }
            }
            else //如果没有设置节点信息,默认所有人都可以审核
            {
                makerList = "1";
            }

            return(makerList);
        }
Example #17
0
        /// <summary>
        /// 寻找该节点执行人
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        private string GetMakerList(FlowNode node, string processId)
        {
            string makerList = "";

            if (node.setInfo == null)
            {
                makerList = "-1";
            }
            else
            {
                if (node.setInfo.NodeDesignate == Setinfo.ALL_USER)//所有成员
                {
                    makerList = "1";
                }
                else if (node.setInfo.NodeDesignate == Setinfo.SPECIAL_USER)//指定成员
                {
                    makerList = GenericHelpers.ArrayToString(node.setInfo.NodeDesignateData.users, makerList);

                    if (makerList == "")
                    {
                        makerList = "-1";
                    }
                }
                else if (node.setInfo.NodeDesignate == Setinfo.SPECIAL_ROLE)  //指定角色
                {
                    var users = RevelanceManagerApp.Get(Define.USERROLE, false, node.setInfo.NodeDesignateData.roles);
                    makerList = GenericHelpers.ArrayToString(users, makerList);

                    if (makerList == "")
                    {
                        makerList = "-1";
                    }
                }
            }
            return(makerList);
        }
        public ActionResult GenerateLicense(string projectCode)
        {
            var acResponse = new ActivityResponse();

            try
            {
                if (string.IsNullOrEmpty(projectCode))
                {
                    acResponse.Code    = -1;
                    acResponse.Message = "The selected Project information could not be accessed. Please try again later";
                    return(Json(acResponse, JsonRequestBehavior.AllowGet));
                }

                var projects = _projectService.Query(p => p.ProjectCode == projectCode).Select().ToList();

                if (!projects.Any())
                {
                    acResponse.Code    = -1;
                    acResponse.Message = "The selected Project information could not be accessed. Please try again later";
                    return(Json(acResponse, JsonRequestBehavior.AllowGet));
                }

                var fieldTypes = _customFieldTypeService.Queryable().ToList();
                if (!fieldTypes.Any())
                {
                    acResponse.Code    = -1;
                    acResponse.Message = "Project Custom Fields could not be retrieved. Please ensure all required setups are handled appropriately before proceeding.";
                    return(Json(acResponse, JsonRequestBehavior.AllowGet));
                }

                var projectCustomGroups = _projectCustomGroupService.Query(g => g.ProjectCode == projectCode).Select().ToList();
                if (!projectCustomGroups.Any())
                {
                    acResponse.Code    = -1;
                    acResponse.Message = "Project Custom Groups could not be retrieved. Please ensure all required setups are handled appropriately before proceeding.";
                    return(Json(acResponse, JsonRequestBehavior.AllowGet));
                }

                var projectCustomFields = _projectCustomFieldService.Query(g => g.ProjectCode == projectCode).Select().ToList();
                if (!projectCustomFields.Any())
                {
                    acResponse.Code    = -1;
                    acResponse.Message = "Project Custom Fields could not be retrieved. Please ensure all required setups are handled appropriately before proceeding.";
                    return(Json(acResponse, JsonRequestBehavior.AllowGet));
                }

                var project = projects[0];

                var projectLicense = new ProjectLicense
                {
                    ProjectName         = project.ProjectName,
                    ProjectDescription  = project.ProjectDescription,
                    ProjectCode         = project.ProjectCode,
                    LicenseExpiryDate   = project.LicenseExpiryDate,
                    DateCreated         = project.DateCreated,
                    ProjectCustomGroups = projectCustomGroups.ToArray(),
                    ProjectCustomFields = projectCustomFields.ToArray()
                };

                var customGroups   = new List <CustomGroup>();
                var customFields   = new List <CustomField>();
                var customList     = new List <CustomList>();
                var customListData = new List <CustomListData>();

                projectCustomGroups.ForEach(c =>
                {
                    var groups = _customGroupService.Query(l => l.CustomGroupId == c.CustomGroupId).Select().ToList();

                    if (groups.Any())
                    {
                        if (!customGroups.Exists(g => g.CustomGroupId == groups[0].CustomGroupId))
                        {
                            customGroups.Add(groups[0]);
                        }
                    }
                });

                projectCustomFields.ForEach(c =>
                {
                    var fields = _customFieldService.Query(l => l.CustomFieldId == c.CustomFieldId).Select().ToList();

                    if (!fields.Any())
                    {
                        return;
                    }

                    var customField = fields[0];
                    var customLists = _customListService.Query(l => l.CustomListId == customField.CustomListId).Select().ToList();
                    var cGroups     = _customGroupService.Query(l => l.CustomGroupId == customField.CustomGroupId).Select().ToList();

                    if (cGroups.Any())
                    {
                        if (!customGroups.Exists(a => a.CustomGroupId == cGroups[0].CustomGroupId))
                        {
                            customGroups.Add(cGroups[0]);
                        }

                        if (customLists.Any())
                        {
                            var cListItem = customLists[0];

                            if (!customList.Exists(a => a.CustomListId == cListItem.CustomListId))
                            {
                                customList.Add(cListItem);
                                var list = _customListDataService.Query(d => d.CustomListId == cListItem.CustomListId).Select().ToList();
                                if (list.Any())
                                {
                                    list.ForEach(l =>
                                    {
                                        if (!customListData.Exists(a => a.CustomListDataId == l.CustomListDataId))
                                        {
                                            customListData.Add(l);
                                        }
                                    });
                                }
                            }
                        }

                        customFields.Add(customField);
                    }
                });

                projectLicense.CustomFields     = customFields.ToArray();
                projectLicense.CustomGroups     = customGroups.ToArray();
                projectLicense.CustomLists      = customList.ToArray();
                projectLicense.CustomListData   = customListData.ToArray();
                projectLicense.CustomFieldTypes = fieldTypes.ToArray();

                const string folderPath = "~/TempProjectSetUp";

                var filePath = Server.MapPath(folderPath + "/" + projectLicense.ProjectName.Replace(" ", "-") + ".json");

                if (System.IO.File.Exists(filePath))
                {
                    System.IO.File.Delete(filePath);
                }

                System.IO.File.WriteAllText(filePath, JsonConvert.SerializeObject(projectLicense));

                acResponse.Code         = 5;
                acResponse.DownloadLink = GenericHelpers.MapPath(filePath);
                acResponse.Message      = "Project License was successfully generated.";
                return(Json(acResponse, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                ErrorLogger.LogError(e.StackTrace, e.Source, e.Message);
                acResponse.Code    = -1;
                acResponse.Message = "The selected Project information could not be accessed. Please try again later";
                return(Json(acResponse, JsonRequestBehavior.AllowGet));
            }
        }
Example #19
0
 public void SubmitBug()
 {
     submitButton.Click();
     GenericHelpers.WaitForElementInPage(By.Id("bugzilla-body"), TimeSpan.FromSeconds(30));
 }
Example #20
0
    private void ActFromBallPosition()
    {
        if (HasHitPredictionDisc && _isBackCourt)
        {
            if (_linkedPlayer.GetComponent <PlayerBehavior>().SPCooldown <= 0)
            {
                _linkedPlayer.GetComponent <PlayerBehavior>().Lift(); //CastSP
            }
            return;
        }
        var predictionDisc = GetPredictionDisc();

        if (predictionDisc != null && predictionDisc.transform.position.y < transform.position.y &&
            GenericHelpers.FloatEqualsPrecision(predictionDisc.transform.position.x, transform.position.x, 0.1f) &&
            transform.position.y - predictionDisc.transform.position.y <= 1.25f &&
            _canDash &&
            _isBackCourt)
        {
            var rand = Random.Range(0, 3);
            if (rand != 0 && (_middleWallBehavior == null || _middleWallBehavior.Order != 2))
            {
                _linkedPlayer.GetComponent <PlayerBehavior>().Dash();
                _canDash = false;
                Invoke("ResetDashPossibility", _repeatDashCooldown);
                return;
            }
        }
        bool shouldDashLimit = false;

        if (_ball.transform.position.y < _startReactDistance && Player == CurrentPlayer.PlayerTwo)
        {
            return;
        }
        if (_ball.transform.position.y > -_startReactDistance && Player == CurrentPlayer.PlayerOne)
        {
            return;
        }
        if (_ball.transform.position.y > _yBallLimit && Player == CurrentPlayer.PlayerTwo)
        {
            shouldDashLimit = true;
        }
        if (_ball.transform.position.y < _yBallLimit && Player == CurrentPlayer.PlayerOne)
        {
            shouldDashLimit = true;
        }
        if ((_canDahEarly && _ball.transform.position.x + _linkedPlayer.GetComponent <PlayerBehavior> ().DashDistance < transform.position.x && _canDash) ||
            (shouldDashLimit == true && _ball.transform.position.x + 0.1f < transform.position.x && _canDash))
        {
            _linkedPlayer.GetComponent <PlayerBehavior> ().Direction = Direction.Left;
            _linkedPlayer.GetComponent <PlayerBehavior> ().Dash();
            _canDash = false;
            Invoke("ResetDashPossibility", _repeatDashCooldown);
        }
        else if ((shouldDashLimit == false && _ball.transform.position.x - _linkedPlayer.GetComponent <PlayerBehavior> ().DashDistance > transform.position.x && _canDash) ||
                 (shouldDashLimit == true && _ball.transform.position.x - 0.1f > transform.position.x && _canDash))
        {
            _linkedPlayer.GetComponent <PlayerBehavior> ().Direction = Direction.Right;
            _linkedPlayer.GetComponent <PlayerBehavior> ().Dash();
            _canDash = false;
            Invoke("ResetDashPossibility", _repeatDashCooldown);
        }
        else if (_ball.transform.position.x + 0.2f < transform.position.x)
        {
            _linkedPlayer.GetComponent <PlayerBehavior> ().Move(Direction.Left);
        }
        else if (_ball.transform.position.x - 0.2f > transform.position.x)
        {
            _linkedPlayer.GetComponent <PlayerBehavior> ().Move(Direction.Right);
        }
        else if (_linkedPlayer.GetComponent <PlayerBehavior> ().SPCooldown <= 0 && Vector2.Distance(transform.position, _ball.transform.position) <= _startCastDistance)
        {
            _linkedPlayer.GetComponent <PlayerBehavior> ().Lift();             //CastSP
        }
        else
        {
            _linkedPlayer.GetComponent <PlayerBehavior> ().Standby();
        }
    }
Example #21
0
 public void AttachmentClick()
 {
     AddAnAttachmentButton.Click();
     GenericHelpers.WaitForElementInPage(By.Id("data"), TimeSpan.FromSeconds(30));
 }
        /// <summary>
        /// Processes a request to determine if it matches a known image, otherwise it will generate it.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public async Task Invoke(HttpContext context)
        {
            var path      = context.Request.Path;
            var extension = Path.GetExtension(path.Value);

            if (!GenericHelpers.IsGetOrHeadMethod(context.Request.Method))
            {
                this.logger.LogRequestMethodNotSupported(context.Request.Method);
            }
            else if (!GenericHelpers.IsRequestFileTypeSupported(
                         extension,
                         this.options.OutputFormats.SelectMany(
                             x => x.FileEndings).ToArray()
                         )
                     )
            {
                this.logger.LogRequestFileTypeNotSupported(extension);
            }
            else if (!GenericHelpers.TryMatchPath(path, this.options.TargetFolder))
            {
                this.logger.LogPathMismatch(path);
            }
            else
            {
                // get the image location on disk
                var imagePath = Path.Combine(
                    this.env.WebRootPath,
                    path.Value
                    .Replace('/', Path.DirectorySeparatorChar)
                    .TrimStart(Path.DirectorySeparatorChar)
                    );

                if (!File.Exists(imagePath))
                {
                    this.logger.LogProcessingImage(path.Value);

                    var size     = Path.GetFileNameWithoutExtension(path.Value).ToLower();
                    var filename = Directory.GetParent(path.Value).Name;

                    // var imageSourcePath = Path.Combine(
                    //     $"{this.env.ContentRootPath}{this.options.SourceFolder}",
                    //     $"{filename}{extension}"
                    // );

                    FileInfo sourceImageFile;
                    var      sourceImageFolder = new DirectoryInfo(Path.Combine(
                                                                       $"{this.env.ContentRootPath}{this.options.SourceFolder}"
                                                                       ));
                    var sourceImageFiles = sourceImageFolder.GetFiles($"{filename}.*");

                    if (sourceImageFiles == null || sourceImageFiles.Length == 0)
                    {
                        // Image source not found!
                        // Hand over to the next middleware and return.
                        this.logger.LogSourceImageNotFound($"{filename}.*");
                        await this.next(context);

                        return;
                    }
                    else
                    {
                        if (sourceImageFiles.Length > 1)
                        {
                            this.logger.LogWarning(
                                $"Found multiple source images, take first one: {sourceImageFiles[0].Name}"
                                );
                        }
                        sourceImageFile = sourceImageFiles[0];
                    }

                    var targetDir = Path.Combine(
                        this.env.WebRootPath,
                        this.options.TargetFolder
                        .Replace('/', Path.DirectorySeparatorChar)
                        .TrimStart(Path.DirectorySeparatorChar),
                        filename
                        );

                    if (!Directory.Exists(targetDir))
                    {
                        this.logger.LogInformation($"Create Directory: \"{targetDir}\"");
                        Directory.CreateDirectory(targetDir);
                    }

                    var sizeSetting = this.options.Sizes.FirstOrDefault(
                        x => (x.Name ?? x.Width.ToString()).ToLower() == size
                        );

                    if (sizeSetting == null)
                    {
                        // Not supported size!
                        // Hand over to the next middleware and return.
                        this.logger.LogSizeNotSupported(size);
                        await this.next(context);

                        return;
                    }

                    var sourceImageFileExtension = sourceImageFile.Extension.Trim('.');
                    var isSourceFileSupported    = Enum.TryParse <MagickFormat>(sourceImageFileExtension, true, out var format);
                    if (isSourceFileSupported)
                    {
                        using (var image = new MagickImage())
                        {
                            try
                            {
                                image.Read(sourceImageFile);
                            }
                            // Something went wrong while loading the image with ImageMagick
                            catch (MagickException exception)
                            {
                                this.logger.LogError($"Error while loading image: {exception}");
                                await this.next(context);

                                return;
                            }

                            image.Resize(sizeSetting.Width, sizeSetting.Height);
                            image.Strip();
                            if (sizeSetting.Quality >= 0)
                            {
                                this.logger.LogInformation($"Setting Quality to: \"{sizeSetting.Quality}\"");
                                image.Quality = sizeSetting.Quality;
                            }

                            if (sizeSetting.Progressive)
                            {
                                image.Format = MagickFormat.Pjpeg;
                            }

                            using (var stream = new MemoryStream())
                            {
                                image.Write(stream);
                                stream.Position = 0;

                                this.logger.LogInformation($"LosslessCompress before: {stream.Length / 1024} kb");
                                var imageOptimizer = new ImageOptimizer();
                                if (options.LosslessCompress)
                                {
                                    imageOptimizer.LosslessCompress(stream);
                                }
                                else
                                {
                                    imageOptimizer.Compress(stream);
                                }
                                this.logger.LogInformation($"LosslessCompress after: {stream.Length / 1024} kb");

                                using (
                                    FileStream file = new FileStream(
                                        imagePath,
                                        FileMode.Create,
                                        System.IO.FileAccess.Write
                                        )
                                    )
                                {
                                    stream.WriteTo(file);
                                    file.Flush();
                                }
                            }
                        }
                    }
                    else
                    {
                        this.logger.LogSourceFileTypeNotSupported($"{sourceImageFileExtension}");
                        await this.next(context);

                        return;
                    }
                }
            }
            await this.next(context);
        }
Example #23
0
        public async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            // This doesn't count login failures towards account lockout
            // To enable password failures to trigger account lockout, change to shouldLockout: true
            var user = await UserManager.FindByNameAsync(model.Email);

            var password = await UserManager.CheckPasswordAsync(user, model.Password);

            if (user != null && password == true)
            {
                if (!user.EmailConfirmed)
                {
                    ModelState.AddModelError("", "Please confirm your email address to process.");
                    return(View(model));
                }
                else if (user.TwoFactorEnabled)
                {
                    return(RedirectToAction(nameof(SendCode), new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }));
                }
                else if (user.LockoutEnabled)
                {
                    ModelState.AddModelError("", "User account locked out.");
                    return(View("Lockout"));
                }
                else
                {
                    var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout : false);

                    switch (result)
                    {
                    case SignInStatus.Success:
                        //return RedirectToLocal(returnUrl);
                        FormsAuthentication.SetAuthCookie(user.UserName, true);
                        _loginCountRepo.CountUserLogin(user.Id.ToString());
                        //audit
                        var ip = GenericHelpers.GetUserIPAddress();
                        if (!string.IsNullOrEmpty(ip))
                        {
                            LoginAudits auditRecord = LoginAudits.CreateAuditEvent(Guid.NewGuid().ToString(), user.Id, en_LoginAuditEventType.Login, ip);
                            if (auditRecord != null)
                            {
                                int auditRecording = _loginAuditRepository.Insert(auditRecord);
                            }
                        }

                        return(RedirectToLocal(returnUrl, user.Id.ToString()));

                    case SignInStatus.LockedOut:
                        if (user != null)
                        {
                            //audit
                            var ip3 = GenericHelpers.GetUserIPAddress();
                            if (!string.IsNullOrEmpty(ip3))
                            {
                                LoginAudits auditRecord3 = LoginAudits.CreateAuditEvent(Guid.NewGuid().ToString(), user.Id, en_LoginAuditEventType.AccountLockedOut, ip3);
                                if (auditRecord3 != null)
                                {
                                    int auditRecording = _loginAuditRepository.Insert(auditRecord3);
                                }
                            }
                        }
                        return(View("Lockout"));

                    case SignInStatus.RequiresVerification:
                        return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }));

                    case SignInStatus.Failure:
                    default:
                        ModelState.AddModelError("", "Invalid login attempt.");
                        if (user != null)
                        {
                            //audit
                            var ip2 = GenericHelpers.GetUserIPAddress();
                            if (!string.IsNullOrEmpty(ip2))
                            {
                                LoginAudits auditRecord2 = LoginAudits.CreateAuditEvent(Guid.NewGuid().ToString(), user.Id, en_LoginAuditEventType.FailedLogin, ip2);
                                if (auditRecord2 != null)
                                {
                                    int auditRecording = _loginAuditRepository.Insert(auditRecord2);
                                }
                            }
                        }
                        return(View(model));
                    }
                }
            }
            else
            {
                ModelState.AddModelError("", "Invalid Email or Username.");
                if (user != null)
                {
                    //audit
                    var         ip          = GenericHelpers.GetUserIPAddress();
                    LoginAudits auditRecord = LoginAudits.CreateAuditEvent(Guid.NewGuid().ToString(), user.Id, en_LoginAuditEventType.FailedLogin, ip);
                    if (auditRecord != null)
                    {
                        int auditRecording = _loginAuditRepository.Insert(auditRecord);
                    }
                }
                return(View(model));
            }
        }
    public void Dash()
    {
        bool dashNetOrBackCourt = false;

        if (!_canDash || IsCastingSP)
        {
            return;
        }
        else if (Direction == Direction.Standby && _canMoveToNet)
        {
            dashNetOrBackCourt = true;
            if (!GenericHelpers.FloatEqualsPrecision(Mathf.Abs(transform.position.y), Mathf.Abs(_backCourtY), 0.25f))
            {
                Direction = Direction.BackDash;
            }
        }

        _canDash  = false;
        IsDashing = true;
        float distance = DashDistance;

        if (dashNetOrBackCourt && Direction == Direction.Standby)
        {
            distance = _frontNetYDashDistance;
        }
        else if (dashNetOrBackCourt && Direction == Direction.BackDash)
        {
            distance = Mathf.Abs(_backCourtY) - Mathf.Abs(transform.position.y);
        }
        if (Direction == Direction.Left ||
            Player == CurrentPlayer.PlayerOne && Direction == Direction.BackDash ||
            Player == CurrentPlayer.PlayerTwo && Direction == Direction.Standby)
        {
            distance = -distance;
        }

        SetOrientation(isDash: true);
        _dashingDirection = Direction;
        _dashingStart     = transform.position;
        if (!dashNetOrBackCourt)
        {
            _dashingEnd = transform.position + new Vector3(distance, 0.0f, 0.0f);
        }
        else
        {
            _dashingEnd = transform.position + new Vector3(0.0f, distance, 0.0f);
        }

        if (_dashingEnd.x < -_gameManager.GetComponent <GameManagerBehavior>().DistanceWall)
        {
            _dashingEnd = new Vector3(-_gameManager.GetComponent <GameManagerBehavior>().DistanceWall, _dashingEnd.y, 0.0f);
        }
        if (_dashingEnd.x > _gameManager.GetComponent <GameManagerBehavior>().DistanceWall)
        {
            _dashingEnd = new Vector3(_gameManager.GetComponent <GameManagerBehavior>().DistanceWall, _dashingEnd.y, 0.0f);
        }

        StretchOnDash();

        Animator.enabled     = false;
        CurrentSprite.sprite = DashSprite;
        Invoke("ResetDash", _dashCooldown);
        var tmpDashEffect = Instantiate(DashEffect, transform.position, transform.rotation);

        tmpDashEffect.transform.eulerAngles += new Vector3(0.0f, 0.0f, 180.0f);
        var tmpDashParticles = Instantiate(DashEffectParticles, transform.position, gameObject.transform.rotation);

        tmpDashParticles.GetComponent <EffectBehavior>().ObjectToFollow = gameObject;
    }
Example #25
0
 public FileLoggingService()
 {
     _logDirectory = GenericHelpers.Combine(AppContext.BaseDirectory, "file_logs");
 }
        /// <summary>
        /// Method to process the text commands
        /// </summary>
        /// <param name="turnContext"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        private async Task <DialogTurnResult> ProcessStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
        {
            //Check if the User has already provided the feedback, if yes, then do not show the FeedBack card again.
            var isFeedbackProvided = await _accessors.FeedbackState.GetAsync(stepContext.Context, () => false, cancellationToken);

            BizTalkOperationApiHelper apiHelper;
            List <Application>        applications     = new List <Application>();
            List <SendPort>           sendPorts        = new List <SendPort>();
            List <ReceiveLocation>    receiveLocations = new List <ReceiveLocation>();
            List <string>             reports          = new List <string>();
            BlobHelper blobHelper;

            //This works with only the ImBack type events sent by the emulator
            if (stepContext.Result != null)
            {
                var tokenResponse = stepContext.Result as TokenResponse;

                if (tokenResponse?.Token != null)
                {
                    var    parts   = _accessors.CommandState.GetAsync(stepContext.Context, () => string.Empty, cancellationToken: cancellationToken).Result.Split(' ');
                    string command = parts[0].ToLowerInvariant();

                    string adaptiveCardData;
                    string operationCard = string.Empty;

                    switch (command)
                    {
                    case "getallapplications":
                        apiHelper = new BizTalkOperationApiHelper("getallapplications");

                        applications = await apiHelper.GetApplicationsAsync();

                        //string sampleAppListJson = GenericHelpers.ReadTextFromFile(@".\SampleMessages\GetApplications.json");
                        //List<Application> bizTalkApplications= JsonConvert.DeserializeObject<List<Application>>(sampleAppListJson);

                        //Save the list of application object in the memory so as to see if the result was queried during the same session.
                        //This saves the communication with the Logic App thus saving the number of round trips
                        await _accessors.ApplicationState.SetAsync(stepContext.Context, applications, cancellationToken : cancellationToken);

                        await _accessors.UserState.SaveChangesAsync(stepContext.Context, cancellationToken : cancellationToken);

                        adaptiveCardData = AdaptiveCardsHelper.CreateGetApplicationsAdaptiveCard(applications);

                        await stepContext.Context.SendActivityAsync(DialogHelpers.CreateReply(stepContext.Context, adaptiveCardData, false), cancellationToken : cancellationToken);

                        await stepContext.Context.SendActivityAsync
                            (DialogHelpers.CreateReply(stepContext.Context,
                                                       string.Format(Constants.AdaptiveCardPath, (isFeedbackProvided ? Constants.AdaptiveCards.OperationMessageNoFB.ToString() : Constants.AdaptiveCards.OperationsMessage.ToString()))
                                                       , true), cancellationToken);

                        break;

                    case "getorchbyapp":
                    case "getsendportsbyapp":

                        //Check the accessors to check if the ApplicationState contains a list of the application, if yes select it else, query the details from
                        // On premises BizTalk System. This is done to avoid fetching the applications multiple times.

                        applications = await _accessors.ApplicationState.GetAsync(stepContext.Context, () => new List <Application>(), cancellationToken : cancellationToken);

                        if (applications.Count == 0 || applications == null)
                        {
                            apiHelper    = new BizTalkOperationApiHelper("getallapplications");
                            applications = await apiHelper.GetApplicationsAsync();

                            //string appListJson = GenericHelpers.ReadTextFromFile(@".\SampleMessages\GetApplications.json");
                            //apps = JsonConvert.DeserializeObject<List<Application>>(appListJson);
                        }

                        adaptiveCardData = AdaptiveCardsHelper.CreateSelectApplicationListAdaptiveCard(applications, command);

                        await stepContext.Context.SendActivityAsync(DialogHelpers.CreateReply(stepContext.Context, adaptiveCardData, false), cancellationToken : cancellationToken);

                        break;

                    case "gethosts":
                        //Check if the Hosts were queried first. If the accessor contains the list then we do not call Logic App
                        //And we save the state. Else we get the host form the State.

                        List <Host> hosts = await _accessors.HostState.GetAsync(stepContext.Context, () => new List <Host>(), cancellationToken);

                        if (hosts.Count == 0 || hosts == null)
                        {
                            apiHelper = new BizTalkOperationApiHelper("gethosts");

                            hosts = await apiHelper.GetHostsAsync();
                        }

                        if (hosts.Count == 0)
                        {
                            await stepContext.Context.SendActivityAsync(string.Format(Constants.NotFoundMessage, "gethosts"), cancellationToken : cancellationToken);
                        }
                        else
                        {
                            await _accessors.HostState.SetAsync(stepContext.Context, hosts, cancellationToken);

                            await _accessors.UserState.SaveChangesAsync(stepContext.Context, cancellationToken : cancellationToken);

                            adaptiveCardData = AdaptiveCardsHelper.CreateGetHostsAdaptiveCard(hosts);

                            await stepContext.Context.SendActivityAsync(DialogHelpers.CreateReply(stepContext.Context, adaptiveCardData, false), cancellationToken);
                        }
                        await stepContext.Context.SendActivityAsync
                            (DialogHelpers.CreateReply(stepContext.Context,
                                                       string.Format(Constants.AdaptiveCardPath, (isFeedbackProvided ? Constants.AdaptiveCards.OperationMessageNoFB.ToString() : Constants.AdaptiveCards.OperationsMessage.ToString()))
                                                       , true), cancellationToken);

                        break;

                    case "getsuspendedinstances":

                        apiHelper = new BizTalkOperationApiHelper("getsuspendedinstances");
                        List <Instance> instances = await apiHelper.GetInstancesAsync();

                        if (instances.Count > 0)
                        {
                            List <Instance> suspendedInstances = instances.Where(x => x.InstanceStatus == Constants.InstanceStatus.Suspended.ToString() ||
                                                                                 x.InstanceStatus == Constants.InstanceStatus.SuspendedNotResumable.ToString()).ToList();

                            if (suspendedInstances.Count() > 0)
                            {
                                string report = GenericHelpers.GetSuspendedInstancesReport(suspendedInstances);

                                blobHelper = new BlobHelper(_configuration);
                                string blobName = await blobHelper.UploadReportToBlobAsync(report, "SuspendedInstances");

                                adaptiveCardData = AdaptiveCardsHelper.CreateGetSuspendedInstancesAdaptiveCard(suspendedInstances);
                                adaptiveCardData = adaptiveCardData.Replace(Constants.ReportDummyUrl, string.Format(Constants.ReportBaseUrl, _storageAccountKey, blobName));
                                await stepContext.Context.SendActivityAsync(DialogHelpers.CreateReply(stepContext.Context, adaptiveCardData, false), cancellationToken);

                                reports = await _accessors.Reports.GetAsync(stepContext.Context, () => new List <string>(), cancellationToken);

                                //If the reports does not contain the generated blob name, then add and save the list to the accessors.
                                if (!reports.Contains(blobName))
                                {
                                    reports.Add(blobName);
                                    await _accessors.Reports.SetAsync(stepContext.Context, reports, cancellationToken);

                                    await _accessors.UserState.SaveChangesAsync(stepContext.Context, cancellationToken : cancellationToken);
                                }
                            }
                            else
                            {
                                await stepContext.Context.SendActivityAsync("Sorry No Suspended Instances were found on the environment", cancellationToken : cancellationToken);
                            }
                        }
                        else
                        {
                            await stepContext.Context.SendActivityAsync("Sorry No Instances were found on the environment", cancellationToken : cancellationToken);
                        }
                        await stepContext.Context.SendActivityAsync
                            (DialogHelpers.CreateReply(stepContext.Context,
                                                       string.Format(Constants.AdaptiveCardPath, (isFeedbackProvided ? Constants.AdaptiveCards.OperationMessageNoFB.ToString() : Constants.AdaptiveCards.OperationsMessage.ToString()))
                                                       , true), cancellationToken);

                        break;

                    case "startsendport":
                        //Check if the Send Ports are available in the Accessors, if they are available, we will not query the LA
                        sendPorts = await _accessors.SendPortState.GetAsync(stepContext.Context, () => new List <SendPort>(), cancellationToken);

                        if (sendPorts.Count == 0 || sendPorts == null)
                        {
                            apiHelper = new BizTalkOperationApiHelper("getsendportsbyapp");
                            sendPorts = await apiHelper.GetSendPortsAsync();

                            //save the list into SendPort State using Accessors
                        }

                        if (sendPorts.Count == 0)
                        {
                            await stepContext.Context.SendActivityAsync(string.Format(Constants.NotFoundMessage, "startsendport"), cancellationToken : cancellationToken);
                        }
                        else
                        {
                            //await _accessors.SendPortState.SetAsync(stepContext.Context, sendPorts, cancellationToken);
                            //await _accessors.UserState.SaveChangesAsync(stepContext.Context, cancellationToken: cancellationToken);

                            if (sendPorts.Where(x => x.Status == "Stopped").ToList().Count() > 0)
                            {
                                adaptiveCardData = AdaptiveCardsHelper.CreateSelectSendPortListAdaptiveCard(sendPorts.Where(x => x.Status == "Stopped").ToList(), "Please Select a send port to start", "startsendport");
                                await stepContext.Context.SendActivityAsync(DialogHelpers.CreateReply(stepContext.Context, adaptiveCardData, false), cancellationToken);
                            }
                            else
                            {
                                await stepContext.Context.SendActivityAsync("No Send Port is in Stopped State. Please Slect another option.");

                                await stepContext.Context.SendActivityAsync
                                    (DialogHelpers.CreateReply(stepContext.Context,
                                                               string.Format(Constants.AdaptiveCardPath, (isFeedbackProvided ? Constants.AdaptiveCards.OperationMessageNoFB.ToString() : Constants.AdaptiveCards.OperationsMessage.ToString()))
                                                               , true), cancellationToken);
                            }
                        }
                        break;

                    case "stopsendport":
                        //Check if the Send Ports are available in the Accessors, if they are available, we will not query the LA
                        sendPorts = await _accessors.SendPortState.GetAsync(stepContext.Context, () => new List <SendPort>(), cancellationToken);

                        if (sendPorts.Count == 0 || sendPorts == null)
                        {
                            apiHelper = new BizTalkOperationApiHelper("getsendportsbyapp");
                            sendPorts = await apiHelper.GetSendPortsAsync();

                            //save the list into SendPort State using Accessors
                        }

                        if (sendPorts.Count == 0)
                        {
                            await stepContext.Context.SendActivityAsync(string.Format(Constants.NotFoundMessage, "stopsendport"), cancellationToken : cancellationToken);
                        }
                        else
                        {
                            //await _accessors.SendPortState.SetAsync(stepContext.Context, sendPorts, cancellationToken);
                            //await _accessors.UserState.SaveChangesAsync(stepContext.Context, cancellationToken: cancellationToken);

                            if (sendPorts.Where(x => x.Status == "Started").ToList().Count() > 0)
                            {
                                adaptiveCardData = AdaptiveCardsHelper.CreateSelectSendPortListAdaptiveCard(sendPorts.Where(x => x.Status == "Started").ToList(), "Please Select a send port to stop", "stopsendport");
                                await stepContext.Context.SendActivityAsync(DialogHelpers.CreateReply(stepContext.Context, adaptiveCardData, false), cancellationToken);
                            }
                            else
                            {
                                await stepContext.Context.SendActivityAsync("No Send Port is in Started State. Please Slect another option.");

                                await stepContext.Context.SendActivityAsync
                                    (DialogHelpers.CreateReply(stepContext.Context,
                                                               string.Format(Constants.AdaptiveCardPath, (isFeedbackProvided ? Constants.AdaptiveCards.OperationMessageNoFB.ToString() : Constants.AdaptiveCards.OperationsMessage.ToString()))
                                                               , true), cancellationToken);
                            }
                        }
                        break;

                    case "enablerl":
                        receiveLocations = await _accessors.ReceiveLocationState.GetAsync(stepContext.Context, () => new List <ReceiveLocation>(), cancellationToken);

                        if (receiveLocations.Count == 0 || receiveLocations == null)
                        {
                            apiHelper        = new BizTalkOperationApiHelper("getrls");
                            receiveLocations = await apiHelper.GetReceiveLocationsAsync();
                        }

                        if (receiveLocations.Count == 0)
                        {
                            await stepContext.Context.SendActivityAsync(string.Format(Constants.NotFoundMessage, "enablerl"), cancellationToken : cancellationToken);
                        }
                        else
                        {
                            //await _accessors.SendPortState.SetAsync(stepContext.Context, sendPorts, cancellationToken);
                            //await _accessors.UserState.SaveChangesAsync(stepContext.Context, cancellationToken: cancellationToken);

                            if (receiveLocations.Where(x => !x.Enable).ToList().Count() > 0)
                            {
                                adaptiveCardData = AdaptiveCardsHelper.CreateSelectReceiveLocationListAdaptiveCard(receiveLocations.Where(x => !x.Enable).ToList(), "Please Select a Receive Location To Enable", "enablerl");
                                await stepContext.Context.SendActivityAsync(DialogHelpers.CreateReply(stepContext.Context, adaptiveCardData, false), cancellationToken);
                            }
                            else
                            {
                                await stepContext.Context.SendActivityAsync("No Receive Location is in Disabled State. Please Slect another option.");

                                await stepContext.Context.SendActivityAsync
                                    (DialogHelpers.CreateReply(stepContext.Context,
                                                               string.Format(Constants.AdaptiveCardPath, (isFeedbackProvided ? Constants.AdaptiveCards.OperationMessageNoFB.ToString() : Constants.AdaptiveCards.OperationsMessage.ToString()))
                                                               , true), cancellationToken);
                            }
                        }
                        break;

                    case "disablerl":
                        receiveLocations = await _accessors.ReceiveLocationState.GetAsync(stepContext.Context, () => new List <ReceiveLocation>(), cancellationToken);

                        if (receiveLocations.Count == 0 || receiveLocations == null)
                        {
                            apiHelper        = new BizTalkOperationApiHelper("getrls");
                            receiveLocations = await apiHelper.GetReceiveLocationsAsync();
                        }

                        if (receiveLocations.Count == 0)
                        {
                            await stepContext.Context.SendActivityAsync(string.Format(Constants.NotFoundMessage, "disablerl"), cancellationToken : cancellationToken);
                        }
                        else
                        {
                            //await _accessors.SendPortState.SetAsync(stepContext.Context, sendPorts, cancellationToken);
                            //await _accessors.UserState.SaveChangesAsync(stepContext.Context, cancellationToken: cancellationToken);

                            if (receiveLocations.Where(x => x.Enable).ToList().Count() > 0)
                            {
                                adaptiveCardData = AdaptiveCardsHelper.CreateSelectReceiveLocationListAdaptiveCard(receiveLocations.Where(x => x.Enable).ToList(), "Please Select a Receive Location To Disable", "disablerl");
                                await stepContext.Context.SendActivityAsync(DialogHelpers.CreateReply(stepContext.Context, adaptiveCardData, false), cancellationToken);
                            }
                            else
                            {
                                await stepContext.Context.SendActivityAsync("No Receive Location is in Enabled State. Please Slect another option.");

                                await stepContext.Context.SendActivityAsync
                                    (DialogHelpers.CreateReply(stepContext.Context,
                                                               string.Format(Constants.AdaptiveCardPath, (isFeedbackProvided ? Constants.AdaptiveCards.OperationMessageNoFB.ToString() : Constants.AdaptiveCards.OperationsMessage.ToString()))
                                                               , true), cancellationToken);
                            }
                        }
                        break;

                    case "feedback":

                        adaptiveCardData = string.Format(Constants.AdaptiveCardPath, Constants.AdaptiveCards.FeedBackCard.ToString());

                        await stepContext.Context.SendActivityAsync(DialogHelpers.CreateReply(stepContext.Context, adaptiveCardData, true), cancellationToken : cancellationToken);

                        //await stepContext.Context.SendActivityAsync
                        // (DialogHelpers.CreateReply(stepContext.Context,
                        // string.Format(Constants.AdaptiveCardPath, (isFeedbackProvided ? Constants.AdaptiveCards.OperationMessageNoFB.ToString() : Constants.AdaptiveCards.OperationsMessage.ToString()))
                        //  ,true), cancellationToken);
                        break;

                    default:
                        await stepContext.Context.SendActivityAsync
                            (DialogHelpers.CreateReply(stepContext.Context,
                                                       string.Format(Constants.AdaptiveCardPath, (isFeedbackProvided ? Constants.AdaptiveCards.OperationMessageNoFB.ToString() : Constants.AdaptiveCards.OperationsMessage.ToString()))
                                                       , true), cancellationToken);

                        break;
                    }
                }
            }
            else
            {
                var token = JToken.Parse(stepContext.Context.Activity.ChannelData.ToString());
                if (System.Convert.ToBoolean(token["postback"].Value <string>()))
                {
                    JToken commandToken     = JToken.Parse(stepContext.Context.Activity.Value.ToString());
                    string command          = GenericHelpers.ParseToken(commandToken, "command");
                    string adaptiveCardData = string.Empty;
                    string applicationName  = string.Empty;


                    switch (command)
                    {
                    case "getorchbyapp":
                        // Check if the Orchestration list is available in the Irchestration State in Accessors.
                        //If the list is there, we will not call the Logic APp else we call the Logic APp and save the
                        //Orchestration List in the Orchestration State.

                        List <Orchestration> orchestrations = await _accessors.OrchestrationState.GetAsync(stepContext.Context, () => new List <Orchestration>(), cancellationToken);

                        if (orchestrations.Count == 0 || orchestrations == null)
                        {
                            apiHelper = new BizTalkOperationApiHelper("getorchbyapp");

                            orchestrations = await apiHelper.GetOrchestrationsAsync();
                        }

                        if (orchestrations.Count == 0)
                        {
                            await stepContext.Context.SendActivityAsync(string.Format(Constants.NotFoundMessage, "getorchbyapp"), cancellationToken : cancellationToken);
                        }
                        else
                        {
                            await _accessors.OrchestrationState.SetAsync(stepContext.Context, orchestrations, cancellationToken);

                            await _accessors.UserState.SaveChangesAsync(stepContext.Context, cancellationToken : cancellationToken);

                            applicationName  = commandToken["applicationChoiceSet"].Value <string>();
                            adaptiveCardData = AdaptiveCardsHelper.CreateGetOrchestrationsAdaptiveCard(orchestrations.Where(x => x.ApplicationName == applicationName).ToList(), applicationName);

                            await stepContext.Context.SendActivityAsync(DialogHelpers.CreateReply(stepContext.Context, adaptiveCardData, false), cancellationToken);
                        }


                        break;

                    case "getsendportsbyapp":
                        //Check if the Send Ports are avaiable in the SendPOrtS STate using the accessors, if they are not, call the Logic APp to
                        //Query the result
                        sendPorts = await _accessors.SendPortState.GetAsync(stepContext.Context, () => new List <SendPort>(), cancellationToken);

                        if (sendPorts.Count == 0 || sendPorts == null)
                        {
                            apiHelper = new BizTalkOperationApiHelper("getsendportsbyapp");
                            sendPorts = await apiHelper.GetSendPortsAsync();

                            //save the list into SendPort State using Accessors
                        }

                        if (sendPorts.Count == 0)
                        {
                            await stepContext.Context.SendActivityAsync(string.Format(Constants.NotFoundMessage, "getsendportsbyapp"), cancellationToken : cancellationToken);
                        }
                        else
                        {
                            //await _accessors.SendPortState.SetAsync(stepContext.Context, sendPorts, cancellationToken);
                            //await _accessors.UserState.SaveChangesAsync(stepContext.Context, cancellationToken: cancellationToken);
                            applicationName  = commandToken["applicationChoiceSet"].Value <string>();
                            adaptiveCardData = AdaptiveCardsHelper.CreateGetSendPortsByAppAdaptiveCard(sendPorts.Where(x => x.ApplicationName == applicationName).ToList(), applicationName);
                            await stepContext.Context.SendActivityAsync(DialogHelpers.CreateReply(stepContext.Context, adaptiveCardData, false), cancellationToken);
                        }
                        break;

                    case "startsendport":

                        string sendportName = commandToken["sendPortChoiceSet"].Value <string>();
                        apiHelper = new BizTalkOperationApiHelper("startsendport", sendportName);
                        bool status = await apiHelper.ChangeSendportStateAsync();

                        string message = string.Empty;
                        if (status)
                        {
                            message = "Operation Completed Successfully";
                        }
                        else
                        {
                            message = "Operation Failed";
                        }

                        await stepContext.Context.SendActivityAsync(message, cancellationToken : cancellationToken);

                        break;

                    case "stopsendport":

                        string sendport = commandToken["sendPortChoiceSet"].Value <string>();
                        apiHelper = new BizTalkOperationApiHelper("stopsendport", sendport);
                        bool opStatus = await apiHelper.ChangeSendportStateAsync();

                        string responsemessage = string.Empty;
                        if (opStatus)
                        {
                            message = "Operation Completed Successfully";
                        }
                        else
                        {
                            message = "Operation Failed";
                        }

                        await stepContext.Context.SendActivityAsync(message, cancellationToken : cancellationToken);

                        break;

                    case "enablerl":

                        string receiveLocation = commandToken["receiveLocationsChoiceSet"].Value <string>();
                        apiHelper        = new BizTalkOperationApiHelper("getrls");
                        receiveLocations = await apiHelper.GetReceiveLocationsAsync();

                        string receivePort = receiveLocations.Where(x => x.Name == receiveLocation).FirstOrDefault().ReceivePortName;

                        //Stop the RL now
                        apiHelper = new BizTalkOperationApiHelper("enablerl", receiveLocation, receivePort);
                        bool rlStatus = await apiHelper.ChangeReceiveLocationStateAsync();

                        if (rlStatus)
                        {
                            message = "Operation Completed Successfully";
                        }
                        else
                        {
                            message = "Operation Failed";
                        }
                        await stepContext.Context.SendActivityAsync(message, cancellationToken : cancellationToken);

                        break;

                    case "disablerl":
                        string rl = commandToken["receiveLocationsChoiceSet"].Value <string>();
                        apiHelper        = new BizTalkOperationApiHelper("getrls");
                        receiveLocations = await apiHelper.GetReceiveLocationsAsync();

                        string rp = receiveLocations.Where(x => x.Name == rl).FirstOrDefault().ReceivePortName;

                        //Stop the RL now
                        apiHelper = new BizTalkOperationApiHelper("disablerl", rl, rp);
                        bool rlopStatus = await apiHelper.ChangeReceiveLocationStateAsync();

                        if (rlopStatus)
                        {
                            message = "Operation Completed Successfully";
                        }
                        else
                        {
                            message = "Operation Failed";
                        }
                        await stepContext.Context.SendActivityAsync(message, cancellationToken : cancellationToken);

                        break;

                    case "feedback":
                        //Save the state that the user has provided the feedback. If Saved, this case will not executed again in the same session.
                        if (!isFeedbackProvided)
                        {
                            await _accessors.FeedbackState.SetAsync(stepContext.Context, true, cancellationToken);

                            await _accessors.UserState.SaveChangesAsync(stepContext.Context, cancellationToken : cancellationToken);

                            isFeedbackProvided = true;
                        }
                        await stepContext.Context.SendActivityAsync("Thank You for the feedback.");

                        break;

                    default:
                        await stepContext.Context.SendActivityAsync("Unable To Perform the task");

                        break;
                    }
                    await stepContext.Context.SendActivityAsync
                        (DialogHelpers.CreateReply(stepContext.Context,
                                                   string.Format(Constants.AdaptiveCardPath, (isFeedbackProvided ? Constants.AdaptiveCards.OperationMessageNoFB.ToString() : Constants.AdaptiveCards.OperationsMessage.ToString()))
                                                   , true), cancellationToken);
                }
                else
                {
                    await stepContext.Context.SendActivityAsync("We couldn't Sign you in. Please try again later");
                }
            }
            await _accessors.CommandState.DeleteAsync(stepContext.Context, cancellationToken);

            return(await stepContext.EndDialogAsync(cancellationToken : cancellationToken));
        }
        // GET: HitList
        public PartialViewResult Index(string SortOrder, string SortDirection, int?page, string pageSize,
                                       string search, string Class)
        {
            if (!string.IsNullOrEmpty(search))
            {
                ViewBag.Filtered = "Y";
            }
            else
            {
                ViewBag.Filtered = "N";
            }
            //List<Project> projects;
            var ravenDb = HttpContext.GetOwinContext().Get <IDocumentSession>();
            RavenQueryStatistics statsRef = new RavenQueryStatistics();

            if (page == null)
            {
                page = 1;
            }

            if (Request.Cookies["pageSize"] == null)
            {
                pageSize = GenericHelpers.IsNull(pageSize, "10");
                HttpCookie pageSizeCookie = new HttpCookie("pageSize");
                pageSizeCookie.Value = pageSize;
                Response.Cookies.Add(pageSizeCookie);
            }
            else
            {
                pageSize = GenericHelpers.IsNull(pageSize, Request.Cookies["pageSize"].Value);
                Response.Cookies["pageSize"].Value = pageSize;
            }

            foreach (var pSize in GenericHelpers.PageSizeList)
            {
                pSize.Selected = false;
                if (pSize.Text == pageSize.ToString())
                {
                    pSize.Selected = true;
                }
            }

            int    pageNumber    = (page ?? 1);
            int    skippedResult = Convert.ToInt32(pageSize) * (pageNumber - 1);
            object results;

            switch (Class)
            {
            case "Project":
                results = GetHitList.GetPage <Project, Project>(ravenDb, skippedResult, Convert.ToInt32(pageSize),
                                                                "Id", SortOrder, SortDirection, search, out statsRef);
                break;

            case "Contact":
                results = GetHitList.GetPage <Contact, Contact>(ravenDb, skippedResult, Convert.ToInt32(pageSize),
                                                                "Id", SortOrder, SortDirection, search, out statsRef);
                break;

            case "User":
                results = GetHitList.GetPage <ApplicationUser, ApplicationUser>(ravenDb, skippedResult, Convert.ToInt32(pageSize),
                                                                                "Id", SortOrder, SortDirection, search, out statsRef);
                break;

            case "Distributor":
                results = GetHitList.GetPage <Distributor, Distributor>(ravenDb, skippedResult, Convert.ToInt32(pageSize),
                                                                        "Id", SortOrder, SortDirection, search, out statsRef);
                break;

            case "Detail":
                results = GetHitList.GetPage <ProjectDetail, ProjectDetail>(ravenDb, skippedResult, Convert.ToInt32(pageSize),
                                                                            "Id", SortOrder, SortDirection, search, out statsRef);
                break;

            case "Warning":
                results = GetHitList.GetPage <Warning, Warning>(ravenDb, skippedResult, Convert.ToInt32(pageSize),
                                                                "Id", SortOrder, SortDirection, search, out statsRef);
                break;

            default:
                results = GetHitList.GetPage <Project, Project>(ravenDb, skippedResult, Convert.ToInt32(pageSize),
                                                                "Id", SortOrder, SortDirection, search, out statsRef);
                break;
            }

            ViewBag.TotalPage      = Math.Round((double)(statsRef.TotalResults / Convert.ToInt32(pageSize))) + 1;
            ViewBag.ActualPage     = pageNumber;
            ViewBag.TotalResult    = statsRef.TotalResults;
            ViewBag.SortOrder      = SortOrder;
            ViewBag.SortDirection  = SortDirection;
            ViewBag.PageSizeList   = GenericHelpers.PageSizeList;
            ViewBag.Search         = search;
            ViewData["controller"] = Class;
            return(PartialView("Index", results));
        }
Example #28
0
 private void OnTextChange(object sender, TextCompositionEventArgs e)
 {
     e.Handled = !GenericHelpers.IsTextAllowed(e.Text);
 }
Example #29
0
        /// <summary>
        ///     Parses all config classes for file conversion
        /// </summary>
        /// <param name="assembly">The assembly to parse from</param>
        private Dictionary <string, Dictionary <string, Dictionary <string, ConfigParseItem> > > ParseConfig(Assembly assembly = null)
        {
            Dictionary <string, Dictionary <string, Dictionary <string, ConfigParseItem> > > parseDict = new Dictionary <string, Dictionary <string, Dictionary <string, ConfigParseItem> > >();

            foreach (Type type in GenericHelpers.GetTypesWithAttribute(typeof(ConfigGroup), assembly))
            {
                if (!type.IsAbstract && !type.IsSealed)
                {
                    throw new ForgeCritical(Language.ForgeCriticalInvalidConfigGroupClassType + type.Name);
                }

                ConfigGroup config = type.GetCustomAttributes(typeof(ConfigGroup), true).FirstOrDefault() as ConfigGroup;

                foreach (PropertyInfo propertyInfo in type.GetProperties())
                {
                    //Turn all config items into ParseItems
                    foreach (ConfigItem configItem in propertyInfo.GetCustomAttributes(typeof(ConfigItem), true))
                    {
                        ConfigParseItem parseItem = new ConfigParseItem
                        {
                            ConfigDefault = configItem.DefaultValue,
                            ConfigName    = configItem.Name,
                            Property      = propertyInfo,
                        };

                        if (parseItem.ConfigName == null)
                        {
                            parseItem.ConfigName = parseItem.Property.Name;
                        }

                        if (config != null && parseDict.ContainsKey(config.FileName))
                        {
                            if (parseDict[config.FileName].ContainsKey(config.GroupName))
                            {
                                parseDict[config.FileName][config.GroupName].Add(parseItem.ConfigName, parseItem);
                            }
                            else
                            {
                                parseDict[config.FileName].Add(config.GroupName, new Dictionary <string, ConfigParseItem> {
                                    { parseItem.ConfigName, parseItem }
                                });
                            }
                        }
                        else
                        {
                            if (config != null)
                            {
                                parseDict.Add(
                                    config.FileName,
                                    new Dictionary <string, Dictionary <string, ConfigParseItem> >
                                {
                                    {
                                        config.GroupName,
                                        new Dictionary <string, ConfigParseItem> {
                                            { parseItem.ConfigName, parseItem }
                                        }
                                    }
                                }
                                    );
                            }
                        }
                    }
                }
            }

            return(parseDict);
        }
 public void initPlugin()
 {
     GenericHelpers.CreateGameObjectAndAttachClass <PluginMenu>();
 }