示例#1
0
        protected override void ExecuteAction(ActionsEnum action)
        {
            switch (action)
            {
            case ActionsEnum.Execute_Idle:
                DoStateChange(State_1_Idle.Execute((Kernel3Database)database, KernelQ, cardQProcessor.CardQ, sw));
                break;

            case ActionsEnum.Execute_WaitingForPDOLData:
                DoStateChange(State_2_WaitingForPDOLData.Execute((Kernel3Database)database, KernelQ, cardQProcessor.CardQ, sw));
                break;

            case ActionsEnum.Execute_WaitingForGPOResponse:
                DoStateChange(State_3_WaitingForGPOResponse.Execute((Kernel3Database)database, KernelQ, cardQProcessor.CardQ, sw, publicKeyCertificateManager, cardExceptionManager));
                break;

            case ActionsEnum.Execute_WaitingForEMVReadRecordResponse:
                Func <string, KernelDatabaseBase, KernelQ, CardQ, Stopwatch, PublicKeyCertificateManager, CardExceptionManager, SignalsEnum> ReadRecordCompleteCallback =
                    new Func <string, KernelDatabaseBase, KernelQ, CardQ, Stopwatch, PublicKeyCertificateManager, CardExceptionManager, SignalsEnum>(State_3_4_CommonProcessing.DoCommonProcessing);
                DoStateChange(State_4_WaitingForEMVReadRecord.Execute((Kernel3Database)database, KernelQ, cardQProcessor.CardQ, sw, publicKeyCertificateManager, cardExceptionManager, ReadRecordCompleteCallback));
                break;

            case ActionsEnum.Execute_TerminateOnNextRA:
                DoStateChange(State_4_TerminateOnNextRA.Execute((Kernel3Database)database, KernelQ, cardQProcessor.CardQ));
                break;

            case ActionsEnum.Execute_EXIT:
                ;
                break;

            default:
                throw new Exception("ProcessEventChange: Invalid ActionsEnum value in EventStateActionDefinition");
            }
        }
        public static RestClientResponse GETjson(string URL, ActionsEnum action, string port = "666")
        {
            //TEST
            //restClient = new RestClient("http://reqres.in/");
            //restRequest = new RestRequest("/api/users?page=2", Method.Get);
            IRestResponse restResponse = null;

            try
            {
                restClient.BaseUrl  = new Uri($"http://{URL}:{port}");
                restRequest         = new RestRequest(Method.GET);
                restRequest.Timeout = 15000;
                restRequest.AddHeader("Accept", "application/xml");
                restRequest.RequestFormat = DataFormat.Xml;


                restResponse = restClient.Execute(restRequest);

                return(new RestClientResponse(restResponse.StatusCode.ToString(), restResponse.Content));
            }
            catch (Exception e)
            {
                if (restResponse != null)
                {
                    Log.Instance.W("Client", $"Couldn't connect to server: {URL} at port:{port} / error: {e.Message}");
                    return(new RestClientResponse(restResponse.StatusCode.ToString(), restResponse.Content));
                }

                return(new RestClientResponse("", ""));
            }
        }
示例#3
0
        public static StatUnitViewModel Create(
            IStatisticalUnit domainEntity,
            DataAccessPermissions dataAccess,
            IReadOnlyDictionary <string, bool> mandatoryFields,
            ActionsEnum ignoredActions)
        {
            var properties = GetFilteredProperties(domainEntity.GetType())
                             .Select(x => PropertyMetadataFactory.Create(
                                         x.PropInfo, domainEntity, x.Writable,
                                         mandatoryFields.TryGetValue(x.PropInfo.Name, out var mandatory) ? mandatory : (bool?)null));

            return(new StatUnitViewModel
            {
                StatUnitType = StatisticalUnitsTypeHelper.GetStatUnitMappingType(domainEntity.GetType()),
                Properties = properties,
                Permissions = dataAccess.Permissions.Where(x => properties.Any(d => x.PropertyName.EndsWith($".{d.LocalizeKey}"))).ToList() //TODO: Filter By Type (Optimization)
            });

            IEnumerable <(PropertyInfo PropInfo, bool Writable)> GetFilteredProperties(Type type)
            => type.GetProperties(BindingFlags.Instance | BindingFlags.Public)
            .Where(x =>
                   dataAccess.HasWriteOrReadPermission(DataAccessAttributesHelper.GetName(type, x.Name)) &&
                   x.CanRead &&
                   x.CanWrite &&
                   (x.GetCustomAttribute <NotMappedForAttribute>(true) == null ||
                    !x.GetCustomAttribute <NotMappedForAttribute>(true).Actions.HasFlag(ignoredActions))
                   )
            .OrderBy(x => ((DisplayAttribute)x.GetCustomAttribute(typeof(DisplayAttribute)))?.GetOrder() ?? int.MaxValue)
            .Select(x => (x, dataAccess.HasWritePermission(DataAccessAttributesHelper.GetName(type, x.Name))));
        }
示例#4
0
        protected void DoStateChange(SignalsEnum eventVal)
        {
            ActionsEnum action = MapSignalToAction(eventVal);

            Logger.Log("Executing New Action: " + action + " From Signal Enum: " + eventVal);
            ExecuteAction(action);
        }
示例#5
0
        /// <summary>
        /// Actions on a subscription.
        /// </summary>
        /// <param name="subscriptionId">Subscription ID.</param>
        /// <param name="subscriptionAction">Action to take.</param>
        /// <param name="cancellationToken">Cancellation token.</param>
        /// <returns>A <see cref="Task{TResult}"/> representing the result of the asynchronous operation.</returns>
        public async Task <IActionResult> SubscriptionAction(
            Guid subscriptionId,
            ActionsEnum subscriptionAction,
            CancellationToken cancellationToken)
        {
            switch (subscriptionAction)
            {
            case ActionsEnum.Activate:
                break;

            case ActionsEnum.Update:
                var availablePlans = await this.marketplaceClient.FulfillmentOperations.ListAvailablePlansAsync(
                    subscriptionId,
                    null,
                    null,
                    cancellationToken).ConfigureAwait(false);

                var subscription = await this.marketplaceClient.FulfillmentOperations.GetSubscriptionAsync(
                    subscriptionId,
                    null,
                    null,
                    cancellationToken).ConfigureAwait(false);

                var pendingOperations = await this.marketplaceClient.SubscriptionOperations.ListOperationsAsync(
                    subscriptionId,
                    null,
                    null,
                    cancellationToken).ConfigureAwait(false);

                var updateSubscriptionViewModel = new UpdateSubscriptionViewModel
                {
                    SubscriptionId    = subscriptionId,
                    SubscriptionName  = subscription.Name,
                    CurrentPlan       = subscription.PlanId,
                    AvailablePlans    = availablePlans.Plans,
                    PendingOperations = pendingOperations.Operations.Any(
                        o => o.Status == OperationStatusEnum.InProgress),
                };

                return(this.View("UpdateSubscription", updateSubscriptionViewModel));

            case ActionsEnum.Ack:
                break;

            case ActionsEnum.Unsubscribe:
                await this.marketplaceClient.FulfillmentOperations.DeleteSubscriptionAsync(
                    subscriptionId,
                    null,
                    null,
                    cancellationToken).ConfigureAwait(false);

                return(this.RedirectToAction("Index"));

            default:
                throw new ArgumentOutOfRangeException(nameof(subscriptionAction), subscriptionAction, null);
            }

            return(this.View());
        }
示例#6
0
        public static TResponse Send <TRequest, TResponse>(TRequest requestData, ActionsEnum action, HttpMethod method, ConfigModel config, string[] queryParams = null)
            where TResponse : IResponse
        {
            var httpRequestUrl = $"{ConfigModel.BaseUrl}/{action.GetAlternativeString()}?v={ConfigModel.VersionCode}";

            try
            {
                if (queryParams != null && queryParams.Any())
                {
                    var parts = httpRequestUrl.Split('?');
                    httpRequestUrl = $"{parts[0]}/{string.Join("/", queryParams)}?{parts[1]}";
                }

                var httpRequest = (HttpWebRequest)WebRequest.Create(httpRequestUrl);

                httpRequest.Method      = method.Method;
                httpRequest.ContentType = "application/json; charset=utf-8";
                httpRequest.Accept      = "application/json";
                httpRequest.Headers.Add("Authorization", "Bearer " + GetToken(action, config));

                if (new[] { HttpMethod.Post, HttpMethod.Put, HttpMethod.Delete }.Contains(method) && requestData != null)
                {
                    var jsonSettings = new JsonSerializerSettings
                    {
                        NullValueHandling = NullValueHandling.Ignore
                    };

                    var jsonRequest = JsonConvert.SerializeObject(requestData, Formatting.None, jsonSettings);

                    using (var streamWriter = new StreamWriter(httpRequest.GetRequestStream()))
                    {
                        streamWriter.Write(jsonRequest);
                        streamWriter.Close();
                    }
                }

                return(GetResponseObject <TResponse>(httpRequest.GetResponse() as HttpWebResponse));
            }
            catch (ApiAiException ex) { ex.RequestedUrl = $"[{method.ToString()}] {httpRequestUrl}"; throw ex; }
            catch (System.Net.WebException ex)
            {
                try
                {
                    return(GetResponseObject <TResponse>(ex.Response as HttpWebResponse));
                }
                catch (ApiAiException ex2) { ex2.RequestedUrl = $"[{method.ToString()}] {httpRequestUrl}"; throw ex2; }
                catch (Exception)
                {
                    throw;
                }
            }
            catch (Exception) { throw; }
        }
示例#7
0
        public static void Log(ActionsEnum action, double prix, string description = null)
        {
            var logEntry = new LogEntry {
                Action      = action,
                Price       = prix,
                Date        = DateTime.Now,
                Description = description,
                Username    = UserService.LoggedInUser == null ? "unkown" : UserService.LoggedInUser.Username
            };

            using (var db = new Context())
            {
                db.LogEntries.Add(logEntry);
                db.SaveChanges();
            }
        }
示例#8
0
        public static void SendGameActionFightCloseCombatMessage(IPacketReceiver client, FightActor source, FightActor target, Cell cell, FightSpellCastCriticalEnum castCritical, bool silentCast, WeaponTemplate weapon)
        {
            ActionsEnum actionsEnum = ActionsEnum.ACTION_FIGHT_CLOSE_COMBAT;

            switch (castCritical)
            {
            case FightSpellCastCriticalEnum.CRITICAL_HIT:
                actionsEnum = ActionsEnum.ACTION_FIGHT_CLOSE_COMBAT_CRITICAL_HIT;
                break;

            case FightSpellCastCriticalEnum.CRITICAL_FAIL:
                actionsEnum = ActionsEnum.ACTION_FIGHT_CLOSE_COMBAT_CRITICAL_MISS;
                break;
            }
            client.Send(new GameActionFightCloseCombatMessage((ushort)actionsEnum, source.Id, (target == null) ? 0 : target.Id, cell.Id, (sbyte)castCritical, silentCast, (ushort)weapon.Id));
        }
        public static RestClientResponse Get(string URL, ActionsEnum action = 0, string port = "666")
        {
            string route = string.Empty;

            switch (action)
            {
            case ActionsEnum.CheckServer:
                route = "check"; break;

            case ActionsEnum.UsersListRetrieving:
                route = "UsersList"; break;

            case ActionsEnum.InfoRetrieving:
                route = "Info"; break;
            }

            //TEST
            //restClient = new RestClient("http://reqres.in/");
            //restRequest = new RestRequest("/api/users?page=2", Method.Get);
            IRestResponse restResponse = null;

            try
            {
                restClient.BaseUrl  = new Uri($"http://{URL}:{port}/{route}");
                restRequest         = new RestRequest(Method.GET);
                restRequest.Timeout = 15000;
                restRequest.AddHeader("Accept", "application/json");
                restRequest.RequestFormat = DataFormat.Json;


                restResponse = restClient.Execute(restRequest);

                return(new RestClientResponse(restResponse.StatusCode.ToString(), restResponse.Content));
            }
            catch (Exception e)
            {
                if (restResponse != null)
                {
                    Log.Instance.W("Client", $"Couldn't connect to server: {URL} at port:{port} / error: {e.Message}");
                    return(new RestClientResponse(restResponse.StatusCode.ToString(), restResponse.Content));
                }

                return(new RestClientResponse("", ""));
            }
        }
示例#10
0
        void OnFightPointsVariation(FightActor actor, ActionsEnum action, FightActor source, FightActor target, short delta)
        {
            if (delta >= 0)
            {
                return;
            }

            if (actor.IsFriendlyWith(source))
            {
                return;
            }

            if (action != ActionsEnum.ACTION_CHARACTER_ACTION_POINTS_LOST)
            {
                return;
            }

            UpdateStatus(ChallengeStatusEnum.FAILED, source);
        }
示例#11
0
        private static string GetToken(ActionsEnum action, ConfigModel config)
        {
            var result = string.Empty;

            switch (action)
            {
            case ActionsEnum.Entities:
                result = config.AccesTokenDeveloper;
                break;

            case ActionsEnum.Query:
                result = config.AccesTokenClient;
                break;
            }

            if (string.IsNullOrWhiteSpace(result))
            {
                throw new OperationCanceledException("Requred token is not specifed");
            }

            return(result);
        }
        public async Task <IActionResult> SubscriptionAction(Guid subscriptionId, ActionsEnum action)
        {
            switch (action)
            {
            case ActionsEnum.Activate:
                break;

            case ActionsEnum.Update:
                break;

            case ActionsEnum.Ack:
                break;

            case ActionsEnum.Unsubscribe:
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(action), action, null);
            }

            var operations = await this.fulfillmentManager.GetSubscriptionOperationsAsync(subscriptionId);

            return(this.View());
        }
示例#13
0
 public NotMappedForAttribute(ActionsEnum actions)
 {
     Actions = actions;
 }
 public void GameActionFightPointsVariation(ActionsEnum action, short delta)
 {
     this.Fight.TryStartSequence(ContextualId, 1);
     this.Fight.Send(new GameActionFightPointsVariationMessage((ushort)action, ContextualId, ContextualId, delta));
     this.Fight.TryEndSequence(1, 100);
 }
示例#15
0
 public static void SendGameActionFightLifePointsLostMessage(IPacketReceiver client, ActionsEnum action, FightActor source, FightActor target, short loss, short permanentDamages)
 {
     client.Send(new GameActionFightLifePointsLostMessage((short)action, source.Id, target.Id, loss, permanentDamages));
 }
示例#16
0
 public static void SendGameActionFightPointsVariationMessage(IPacketReceiver client, ActionsEnum action,
                                                              FightActor source,
                                                              FightActor target, short delta)
 {
     client.Send(new GameActionFightPointsVariationMessage(
                     (short)action,
                     source.Id, target.Id, delta
                     ));
 }
示例#17
0
 public static void SendGameActionFightDodgePointLossMessage(IPacketReceiver client, ActionsEnum action, FightActor source, FightActor target, short amount)
 {
     client.Send(new GameActionFightDodgePointLossMessage((short)action, source.Id, target.Id, amount));
 }
        private KeyValuePair<Guid, string> GetActionPlayer(ActionsEnum action)
        {
            Dictionary<Guid, string> players = null;
            if (action == ActionsEnum.Foul)
            {
                //Get defensive team players
                players = _Teams[_Teams.Keys.Where(name => name != _ScoreData.TeamOnOffense).First()];
            }
            else
            {
                players = _Teams[_Teams.Keys.Where(name => name == _ScoreData.TeamOnOffense).First()];
            }

            Random r = new Random();
            return players.ElementAt(r.Next(0, players.Count));
        }
示例#19
0
        /// <summary>
        /// Method to get view model
        /// </summary>
        /// <param name = "id"> Id stat. units </param>
        /// <param name = "type"> Type of stat. units </param>
        /// <param name = "userId"> User Id </param>
        /// <param name = "ignoredActions"> </param>
        /// <returns> </returns>
        public async Task <StatUnitViewModel> GetViewModel(int?id, StatUnitTypes type, string userId, ActionsEnum ignoredActions)
        {
            bool isEmployee = await _userService.IsInRoleAsync(userId, DefaultRoleNames.Employee);

            var item = id.HasValue
                ? await _commonSvc.GetStatisticalUnitByIdAndType(id.Value, type, false)
                : GetDefaultDomainForType(type);

            if (item == null)
            {
                throw new BadRequestException(nameof(Resource.NotFoundMessage));
            }

            if ((ignoredActions == ActionsEnum.Edit) && isEmployee)
            {
                var helper     = new StatUnitCheckPermissionsHelper(_context);
                var mappedItem = new ElasticStatUnit();
                Mapper.Map(item, mappedItem);
                helper.CheckRegionOrActivityContains(userId, mappedItem.RegionIds, mappedItem.ActivityCategoryIds);
            }

            var dataAccess = await _userService.GetDataAccessAttributes(userId, item.UnitType);

            var config = type == StatUnitTypes.EnterpriseGroup
                ? _mandatoryFields.EnterpriseGroup
                : (object)_mandatoryFields.StatUnit;
            var mandatoryDict = config.GetType().GetProperties().ToDictionary(x => x.Name, GetValueFrom(config));

            if (type != StatUnitTypes.EnterpriseGroup)
            {
                object subConfig;
                switch (type)
                {
                case StatUnitTypes.LocalUnit:
                    subConfig = _mandatoryFields.LocalUnit;
                    break;

                case StatUnitTypes.LegalUnit:
                    subConfig = _mandatoryFields.LegalUnit;
                    break;

                case StatUnitTypes.EnterpriseUnit:
                    subConfig = _mandatoryFields.Enterprise;
                    break;

                default: throw new Exception("bad statunit type");
                }
                var getValue = GetValueFrom(subConfig);
                subConfig.GetType().GetProperties().ForEach(x => mandatoryDict[x.Name] = getValue(x));
            }

            //The LegalUnits field of the EnterpriseUnit type is required by business logic
            if (type == StatUnitTypes.EnterpriseUnit && mandatoryDict.ContainsKey("LegalUnits"))
            {
                mandatoryDict["LegalUnits"] = true;
            }

            return(StatUnitViewModelCreator.Create(item, dataAccess, mandatoryDict, ignoredActions));

            Func <PropertyInfo, bool> GetValueFrom(object source) => prop =>
            {
                var value = prop.GetValue(source);
                return(value is bool b && b);
            };
        }
示例#20
0
 public static void SendGameActionFightSpellCastMessage(IPacketReceiver client, ActionsEnum actionId, FightActor caster, FightActor target,
                                                        Cell cell, FightSpellCastCriticalEnum critical, bool silentCast,
                                                        Spell spell)
 {
     client.Send(new GameActionFightSpellCastMessage((short)actionId, caster.Id, silentCast, spell.Template.VerboseCast, target == null ? 0 : target.Id, silentCast ? (short)-1 : cell.Id, (sbyte)(critical),
                                                     (short)spell.Id, (sbyte)spell.CurrentLevel, new short[0]));
 }
示例#21
0
        protected override void ExecuteAction(ActionsEnum action)
        {
            switch (action)
            {
            case ActionsEnum.Execute_Idle:
                DoStateChange(State_1_Idle.Execute((KernelDatabase)database, KernelQ, cardQProcessor.CardQ, sw));
                break;

            case ActionsEnum.Execute_WaitingForPDOLData:
                DoStateChange(State_2_WaitingForPDOLData.Execute((KernelDatabase)database, KernelQ, cardQProcessor.CardQ, sw));
                break;

            case ActionsEnum.Execute_WaitingForGPOResponse:
                DoStateChange(State_3_WaitingForGPOResponse.Execute((KernelDatabase)database, KernelQ, cardQProcessor.CardQ, sw));
                break;

            case ActionsEnum.Execute_WaitingForEMVReadRecordResponse:
                DoStateChange(State_4_WaitingForEMVReadRecord.Execute((KernelDatabase)database, KernelQ, cardQProcessor.CardQ, emvSelectApplicationResponse, sw));
                break;

            case ActionsEnum.Execute_WaitingForCVMProcessing:
                DoStateChange(State_5_WaitingForCVMProcessing.Execute((KernelDatabase)database, KernelQ, cardQProcessor.CardQ, sw));
                break;

            case ActionsEnum.Execute_WaitingForGetPinReponse:
                DoStateChange(State_5a_WaitingForGetPinReponse.Execute((KernelDatabase)database, KernelQ, cardQProcessor.CardQ, sw));
                break;

            case ActionsEnum.Execute_WaitingForGetPinTryCounter:
                DoStateChange(State_5b_WaitingForGetPinTryCounter.Execute((KernelDatabase)database, KernelQ, cardQProcessor.CardQ, sw));
                break;

            case ActionsEnum.Execute_WaitingForGetChallenge:
                DoStateChange(State_5c_WaitingForGetChallenge.Execute((KernelDatabase)database, KernelQ, cardQProcessor.CardQ, publicKeyCertificateManager, emvSelectApplicationResponse, sw));
                break;

            case ActionsEnum.Execute_WaitingForVerify:
                DoStateChange(State_5d_WaitingForVerify.Execute((KernelDatabase)database, KernelQ, cardQProcessor.CardQ, sw));
                break;

            case ActionsEnum.Execute_WaitingForTerminalRiskManagement:
                DoStateChange(State_6_WaitingForTerminalRiskManagement.Execute((KernelDatabase)database, KernelQ, cardQProcessor.CardQ, emvSelectApplicationResponse, sw));
                break;

            case ActionsEnum.Execute_WaitingForGenerateACResponse_1:
                DoStateChange(State_7_WaitingForGenACResponse_1.Execute((KernelDatabase)database, KernelQ, cardQProcessor.CardQ, emvSelectApplicationResponse, publicKeyCertificateManager, sw));
                break;

            case ActionsEnum.Execute_WaitingForInternalAuthenticate:
                DoStateChange(State_7_WaitingForInternalAuthenticate.Execute((KernelDatabase)database, KernelQ, cardQProcessor.CardQ, publicKeyCertificateManager, emvSelectApplicationResponse, sw));
                break;

            case ActionsEnum.Execute_WaitingForOnlineAuth:
                DoStateChange(State_8_WaitingForOnlineAuth.Execute((KernelDatabase)database, KernelQ, cardQProcessor.CardQ, emvSelectApplicationResponse, sw));
                break;

            case ActionsEnum.Execute_WaitingForExternalAuthenticate:
                DoStateChange(State_9_WaitingForExternalAuthenticate.Execute((KernelDatabase)database, KernelQ, cardQProcessor.CardQ, publicKeyCertificateManager, emvSelectApplicationResponse, sw));
                break;

            case ActionsEnum.Execute_WaitingForGenerateACResponse_2:
                DoStateChange(State_10_WaitingForGenACResponse_2.Execute((KernelDatabase)database, KernelQ, cardQProcessor.CardQ, emvSelectApplicationResponse, publicKeyCertificateManager, sw));
                break;

            case ActionsEnum.Execute_WaitingForScriptProcessing:
                DoStateChange(State_11_WaitingForScriptProcessing.Execute((KernelDatabase)database, KernelQ, cardQProcessor.CardQ, emvSelectApplicationResponse, publicKeyCertificateManager, sw));
                break;

            case ActionsEnum.Execute_EXIT:
                ;
                break;

            default:
                throw new Exception("ProcessEventChange: Invalid ActionsEnum value in EventStateActionDefinition");
            }
        }
示例#22
0
        public static void SendGameActionFightMarkCellsMessage(IPacketReceiver client, MarkTrigger trigger, bool visible = true)
        {
            ActionsEnum actionsEnum = (trigger.Type == GameActionMarkTypeEnum.GLYPH) ? ActionsEnum.ACTION_FIGHT_ADD_GLYPH_CASTING_SPELL : ActionsEnum.ACTION_FIGHT_ADD_TRAP_CASTING_SPELL;

            client.Send(new GameActionFightMarkCellsMessage((ushort)actionsEnum, trigger.Caster.Id, visible ? trigger.GetGameActionMark() : trigger.GetHiddenGameActionMark()));
        }
示例#23
0
 public static void SendGameActionFightSpellCastMessage(IPacketReceiver client, ActionsEnum actionId, FightActor caster, FightActor target, Cell cell, FightSpellCastCriticalEnum critical, bool silentCast, short spellId, sbyte spellLevel)
 {
     client.Send(new GameActionFightSpellCastMessage((ushort)actionId, caster.Id, (target == null) ? 0 : target.Id, cell.Id, (sbyte)critical, silentCast, (ushort)spellId, spellLevel, Enumerable.Empty <short>()));
 }
        public async Task <IActionResult> SubscriptionAction(
            Guid subscriptionId,
            ActionsEnum subscriptionAction,
            CancellationToken cancellationToken)
        {
            var requestId     = Guid.NewGuid();
            var correlationId = Guid.NewGuid();

            switch (subscriptionAction)
            {
            case ActionsEnum.Activate:
                break;

            case ActionsEnum.Update:
                var availablePlans = (await this.fulfillmentClient.GetSubscriptionPlansAsync(
                                          subscriptionId,
                                          requestId,
                                          correlationId,
                                          cancellationToken)).Plans.ToList();

                // remove the base plan from the model to show
                availablePlans.Remove(availablePlans.Single(p => p.PlanId == this.options.BasePlanId));

                var subscription = await this.fulfillmentClient.GetSubscriptionAsync(
                    subscriptionId,
                    requestId,
                    correlationId,
                    cancellationToken);

                var updateSubscriptionViewModel = new UpdateSubscriptionViewModel
                {
                    SubscriptionId    = subscriptionId,
                    SubscriptionName  = subscription.Name,
                    CurrentPlan       = subscription.PlanId,
                    AvailablePlans    = availablePlans,
                    PendingOperations =
                        (await this.fulfillmentClient
                         .GetSubscriptionOperationsAsync(
                             subscriptionId,
                             requestId,
                             correlationId,
                             cancellationToken)).Any(
                            o => o.Status == OperationStatusEnum.InProgress)
                };

                return(this.View("UpdateSubscription", updateSubscriptionViewModel));

            case ActionsEnum.Ack:
                break;

            case ActionsEnum.Unsubscribe:
                var unsubscribeResult = await this.fulfillmentClient.DeleteSubscriptionAsync(
                    subscriptionId,
                    requestId,
                    correlationId,
                    cancellationToken);

                return(unsubscribeResult.Success ? this.RedirectToAction("Index") : this.Error());

            default:
                throw new ArgumentOutOfRangeException(nameof(subscriptionAction), subscriptionAction, null);
            }

            return(this.View());
        }
示例#25
0
 public void PointsVariation(int sourceId, int targetId, ActionsEnum action, short delta)
 {
     this.Send(new GameActionFightPointsVariationMessage((ushort)action, sourceId, targetId, delta));
 }
示例#26
0
        protected override void ExecuteAction(ActionsEnum action)
        {
            switch (action)
            {
            case ActionsEnum.Execute_Idle:
                DoStateChange(State_1_Idle.Execute((Kernel2Database)database, KernelQ, cardQProcessor.CardQ, tornTransactionLogManager, sw));
                break;

            case ActionsEnum.Execute_WaitingForPDOLData:
                DoStateChange(State_2_WaitingForPDOLData.Execute((Kernel2Database)database, KernelQ, cardQProcessor.CardQ, sw));
                break;

            case ActionsEnum.Execute_WaitingForGPOResponse:
                DoStateChange(State_3_WaitingForGPOResponse.Execute((Kernel2Database)database, KernelQ, cardQProcessor.CardQ, sw));
                break;

            case ActionsEnum.Execute_WaitingForExchangeRelayResistanceDataResponse:
                DoStateChange(State_R1_ExchangeRelayResistanceData.Execute((Kernel2Database)database, KernelQ, cardQProcessor.CardQ, sw));
                break;

            case ActionsEnum.Execute_WaitingForEMVReadRecordResponse:
                DoStateChange(State_4_WaitingForEMVReadRecord.Execute((Kernel2Database)database, KernelQ, cardQProcessor.CardQ, tornTransactionLogManager, sw));
                break;

            case ActionsEnum.Execute_TerminateOnNextRA:
                DoStateChange(State_4_TerminateOnNextRA.Execute((Kernel2Database)database, KernelQ, cardQProcessor.CardQ));
                break;

            case ActionsEnum.Execute_WaitingForGetDataResponse:
                DoStateChange(State_5_WaitingForGetDataResponse.Execute((Kernel2Database)database, KernelQ, cardQProcessor.CardQ, tornTransactionLogManager, sw));
                break;

            case ActionsEnum.Execute_WaitingForEMVModeFirstWriteFlag:
                DoStateChange(State_6_WaitingForEMVModeFirstWriteFlag.Execute((Kernel2Database)database, KernelQ, cardQProcessor.CardQ, tornTransactionLogManager, sw));
                break;

            case ActionsEnum.Execute_WaitingForMagStripeReadRecordResponse:
                DoStateChange(State_7_WaitingForMagStripeReadRecordResponse.Execute((Kernel2Database)database, KernelQ, cardQProcessor.CardQ, tornTransactionLogManager, sw));
                break;

            case ActionsEnum.Execute_WaitingForMagStripeModeFirstWriteFlag:
                DoStateChange(State_8_WaitingForMagStripeFirstWriteFlag.Execute((Kernel2Database)database, KernelQ, cardQProcessor.CardQ, sw));
                break;

            case ActionsEnum.Execute_WaitingForGenerateACResponse_1:
                DoStateChange(State_9_WaitingForGenACResponse_1.Execute((Kernel2Database)database, KernelQ, cardQProcessor.CardQ, tornTransactionLogManager, publicKeyCertificateManager, sw));
                break;

            case ActionsEnum.Execute_WaitingForRecoverACResponse:
                DoStateChange(State_10_WaitingForRecoverACResponse.Execute((Kernel2Database)database, KernelQ, cardQProcessor.CardQ, tornTransactionLogManager, publicKeyCertificateManager, sw));
                break;

            case ActionsEnum.Execute_WaitingForGenerateACResponse_2:
                DoStateChange(State_11_WaitingForGenACResponse_2.Execute((Kernel2Database)database, KernelQ, cardQProcessor.CardQ, tornTransactionLogManager, publicKeyCertificateManager, sw));
                break;

            case ActionsEnum.Execute_WaitingForPutDataResponseBeforeGenerateAC:
                DoStateChange(State_12_WaitingForPutDataResponseBeforeGenerateAC.Execute((Kernel2Database)database, KernelQ, cardQProcessor.CardQ, tornTransactionLogManager, sw));
                break;

            case ActionsEnum.Execute_WaitingForCCCResponse_1:
                DoStateChange(State_13_WaitingForCCCResponse1.Execute((Kernel2Database)database, KernelQ, cardQProcessor.CardQ, tornTransactionLogManager, publicKeyCertificateManager, sw));
                break;

            case ActionsEnum.Execute_WaitingForCCCResponse_2:
                DoStateChange(State_14_WaitingForCCCResponse2.Execute((Kernel2Database)database, KernelQ, cardQProcessor.CardQ, tornTransactionLogManager, publicKeyCertificateManager, sw));
                break;

            case ActionsEnum.Execute_WaitingForPutDataResponseAfterGenerateAC:
                DoStateChange(State_15_WaitingForPutDataResponseAfterGenerateAC.Execute((Kernel2Database)database, KernelQ, cardQProcessor.CardQ, tornTransactionLogManager, sw));
                break;

            case ActionsEnum.Execute_EXIT:
                ;
                break;

            default:
                throw new Exception("ProcessEventChange: Invalid ActionsEnum value in EventStateActionDefinition");
            }
        }
示例#27
0
 public void SetCustomActionId(ActionsEnum action)
 {
     m_actionId = (ushort)action;
 }
示例#28
0
 public static void SendGameActionFightSpellCastMessage(IPacketReceiver client, ActionsEnum actionId, FightActor caster, FightActor target,
                                                        Cell cell, FightSpellCastCriticalEnum critical, bool silentCast,
                                                        short spellId, sbyte spellLevel)
 {
     client.Send(new GameActionFightSpellCastMessage((short)actionId, caster.Id, silentCast, false, target == null ? 0 : target.Id, cell.Id, (sbyte)(critical),
                                                     spellId, spellLevel, new short[0]));
 }
        // Update content, play animation, play sound, display for a while, then automatically hide
        // Callback only used when there are two buttons
        // Might also consider adding a log, especially for errors
        public void Update(StatusEnum status, string text, ActionsEnum action, PlacementEnum placement, ActionCallBack callback = null)
        {
            // Save parameters
            Status   = status;
            Text     = text;
            Action   = action;
            CallBack = callback;

            // Reconfigure timer
            dispatcherTimer.Interval = new TimeSpan(0, 0, 7);

            // Update Content
            StatusLabel.Content = Status.ToString(); // Update status label
            switch (Status)                          // Update status icon
            {
            case StatusEnum.Event:
                // StatusIcon.Source = ...
                break;

            case StatusEnum.TimerEvent:
                // StatusIcon.Source = ...
                break;

            case StatusEnum.Notice:
                // StatusIcon.Source = ...
                dispatcherTimer.Interval = new TimeSpan(0, 0, 2);
                break;

            case StatusEnum.Welcome:
                // StatusIcon.Source = ...
                break;

            case StatusEnum.Error:
                // StatusIcon.Source = ...
                break;

            default:
                break;
            }
            StatusTextBlock.Text = Text; // Update status text
            switch (Action)              // Update buttons
            {
            case ActionsEnum.AcceptCancel:
                LeftButton.Content      = "Accept";
                LeftButton.Visibility   = Visibility.Visible;
                RightButton.Content     = "Cancel";
                RightButton.Visibility  = Visibility.Visible;
                CenterButton.Visibility = Visibility.Hidden;
                break;

            case ActionsEnum.YesNo:
                LeftButton.Content      = "Yes";
                LeftButton.Visibility   = Visibility.Visible;
                RightButton.Content     = "No";
                RightButton.Visibility  = Visibility.Visible;
                CenterButton.Visibility = Visibility.Hidden;
                break;

            case ActionsEnum.Acknowledge:
                LeftButton.Visibility   = Visibility.Hidden;
                RightButton.Visibility  = Visibility.Hidden;
                CenterButton.Content    = "Ackownledge";
                CenterButton.Visibility = Visibility.Visible;
                break;

            case ActionsEnum.None:
                LeftButton.Visibility   = Visibility.Hidden;
                RightButton.Visibility  = Visibility.Hidden;
                CenterButton.Visibility = Visibility.Hidden;
                break;

            default:
                break;
            }

            // Play blink animation
            // ...

            // Play notif souond
            // ...

            // Restart timer
            dispatcherTimer.Stop();
            dispatcherTimer.Start();

            // Set window location
            var desktopWorkingArea = System.Windows.SystemParameters.WorkArea;

            switch (placement)
            {
            case PlacementEnum.UpperRight:
                this.Left = desktopWorkingArea.Right - this.Width - 50;
                this.Top  = 50;
                break;

            case PlacementEnum.LowerRight:
                this.Left = desktopWorkingArea.Right - this.Width - 50;
                this.Top  = desktopWorkingArea.Bottom - this.ActualHeight - 80;
                break;

            default:
                break;
            }

            // Display Contents
            this.Visibility = Visibility.Visible;
        }
示例#30
0
        public static void SendGameActionFightTriggerGlyphTrapMessage(IPacketReceiver client, MarkTrigger trigger, FightActor target, Spell triggeredSpell)
        {
            ActionsEnum actionsEnum = (trigger.Type == GameActionMarkTypeEnum.GLYPH) ? ActionsEnum.ACTION_FIGHT_TRIGGER_GLYPH : ActionsEnum.ACTION_FIGHT_TRIGGER_TRAP;

            client.Send(new GameActionFightTriggerGlyphTrapMessage((ushort)actionsEnum, trigger.Caster.Id, trigger.Id, target.Id, (ushort)triggeredSpell.Id));
        }
示例#31
0
 public IAuditContextManager SetAction(ActionsEnum action)
 {
     CurrentContextData.Action = action;
     return(this);
 }