예제 #1
0
        public async Task RespondAsync(Func <ContextModel, Task <OperationResult> > response)
        {
            UiOperationResult uiResult = null;

            try
            {
                var          contextModel = _socket.ReceiveFrameString();
                ContextModel model        = JsonConvert.DeserializeObject <ContextModel>(contextModel);
                if (model.User == null)
                {
                    throw new InvalidOperationException($"input: {contextModel} ain`t no ContextModel");
                }
                var opResult = await response(model);

                uiResult = FromOperationResult(opResult);
            }
            catch (System.Exception ex)
            {
                var oR = OperationResult.Failure
                         (
                    ResultType.BadRequest,
                    $"could not parse contextModel: {ex.Message}"
                         );
                uiResult = FromOperationResult(oR);
            }

            string json = JsonConvert.SerializeObject(uiResult);

            byte[] bytes = Encoding.UTF8.GetBytes(json);
            _socket.SendFrame(bytes);
        }
예제 #2
0
        public static async Task <UiOperationResult> RequestReceiveLog(ContextModel model, IRequestBus _socket, Action <object> _log)
        {
            System.Console.WriteLine("send model - Type: [" + typeof(ContextModel).Name + "]");
            UiOperationResult uiResult = await _socket.RequestAsync(model);

            _log($"uiResult: [{uiResult.IsSuccess}] - ResultName: [{uiResult.ResultName}] - Amount: [{uiResult.ConfigurationModels?.Count}]\nError:[{uiResult.ErrorMessage}]");
            System.Console.WriteLine("-".PadRight(50, '-'));

            return(uiResult);
        }
예제 #3
0
        ///<summary>
        /// Add a User, update a user, get a user, remove a user
        /// all with the cli interaction
        ///</summary>
        public static async Task Run(Action <object> printCallback)
        {
            var log  = printCallback;
            var comm = SetupComm.GetCommunication("tcp://*****:*****@googlemail.com", "admin1234!"),
                AppClaims = new AppClaimModel[]
                {
                    new AppClaimModel
                    {
                        ApplicationName  = "App-1",
                        ConfigEntitiyKey = "RabbitMQ",
                        CanRead          = true,
                        CanWrite         = true
                    }
                },
                Key     = null,
                Value   = null,
                AppName = "App-1",
                Type    = ContextType.AddUser
            };

            string[] expected = Enumerable.Repeat("Success", 3).Append("No Success").ToArray();
            System.Console.WriteLine("-".PadRight(50, '-'));
            System.Console.WriteLine("expected:\n" + string.Join("\n", expected));
            System.Console.WriteLine("-".PadRight(50, '-'));

            using (comm.Socket)
            {
                UiOperationResult uiResult = await InteractCli.RequestReceiveLog(model, comm.Socket, log);

                System.Console.WriteLine("AddUser was: " + (uiResult.IsSuccess ? "Success" : "No Success"));

                model.Type = ContextType.GetUser;
                uiResult   = await InteractCli.RequestReceiveLog(model, comm.Socket, log);

                System.Console.WriteLine("GetUser was: " + (uiResult.IsSuccess ? "Success" : "No Success"));

                model.Type = ContextType.UpdateUser;
                var list = model.AppClaims.ToList();
                list.Add(new AppClaimModel {
                    ApplicationName = "App-2", ConfigEntitiyKey = "Simple", CanRead = true, CanWrite = true
                });
                model.AppClaims = list.ToArray();
                uiResult        = await InteractCli.RequestReceiveLog(model, comm.Socket, log);

                System.Console.WriteLine("UpdateUser was: " + (uiResult.IsSuccess ? "Success" : "No Success"));

                model.Type = ContextType.DeleteUser;
                uiResult   = await InteractCli.RequestReceiveLog(model, comm.Socket, log);

                System.Console.WriteLine("DeleteUser was: " + (uiResult.IsSuccess ? "Success" : "No Success"));

                model.Type = ContextType.GetUser;
                uiResult   = await InteractCli.RequestReceiveLog(model, comm.Socket, log);

                System.Console.WriteLine("GetUser after Delete was: " + (uiResult.IsSuccess ? "Success" : "No Success"));
            }
        }