Example #1
0
        protected override CommandResult Execute(ConsoleContext context, RoleArgument arguments)
        {
            if (string.IsNullOrEmpty(arguments.Rename) || string.IsNullOrEmpty(arguments.Name))
            {
                System.Console.WriteLine("Przy update wymagany parametr -n <NAZWA> -r <NAZWA>");
                return(new CommandResult());
            }

            Task <ConnectorResult <Response <IEnumerable <Role> > > > role = WinApiConnector.RequestGet <Response <IEnumerable <Role> > >($"{context.ConsoleSettings.ServerAddress}:{context.ConsoleSettings.Port}/Api/Configuration/GetRole/" +
                                                                                                                                          $"{arguments.Name.ToLower()}");
            ConnectorResult <Response <IEnumerable <Role> > > preResult = role.Result;

            if (!preResult.IsSuccess)
            {
                return(new CommandResult(preResult.Message, false));
            }
            if (!preResult.Response.IsSuccess)
            {
                return(new CommandResult(preResult.Response.Code, false));
            }
            if (!preResult.Response.Payload.Any())
            {
                return(new CommandResult($"The Role {arguments.Name} doesn't exist in database", false));
            }

            if (preResult.Response.Payload.Count() != 1)
            {
                return(new CommandResult(preResult.Response.Payload.Count() == 0 ? "Nie można zmienić roli, która nie istnieje" : "Wiecej niż jeden wynik", false));
            }

            Task <ConnectorResult <Response <string> > > result = WinApiConnector.RequestPut <Role, Response <string> >($"{context.ConsoleSettings.ServerAddress}:{context.ConsoleSettings.Port}/Api/Configuration/UpdateRole",
                                                                                                                        new Role()
            {
                Identifier = preResult.Response.Payload.FirstOrDefault().Identifier,
                Name       = arguments.Rename.ToLower()
            });
            ConnectorResult <Response <string> > connectorResult = result.Result;

            if (!connectorResult.IsSuccess)
            {
                return(new CommandResult(connectorResult.Message, false));
            }
            if (!connectorResult.Response.IsSuccess)
            {
                return(new CommandResult(connectorResult.Response.Code, false));
            }
            if (connectorResult.Response.Payload == null)
            {
                return(new CommandResult("The payload of response is null or empty", false));
            }

            return(new CommandResult($"The Role {arguments.Rename} has been updated", true));
        }
        protected override CommandResult Execute(ConsoleContext context, QuarryArguments arguments)
        {
            IList <Quarry> quarriesList = new List <Quarry>();
            Quarry         quarry       = new Quarry();

            if (string.IsNullOrEmpty(arguments.Identifier))
            {
                Task <ConnectorResult <Response <IEnumerable <Quarry> > > > quarries  = WinApiConnector.RequestGet <Response <IEnumerable <Quarry> > >($"{context.ConsoleSettings.ServerAddress}:{context.ConsoleSettings.Port}/Api/Hunting/GetQuarries");
                ConnectorResult <Response <IEnumerable <Quarry> > >         preResult = quarries.Result;
                if (!preResult.IsSuccess)
                {
                    return(new CommandResult(preResult.Message, false));
                }
                if (!preResult.Response.IsSuccess)
                {
                    return(new CommandResult(preResult.Response.Code, false));
                }
                if (!preResult.Response.Payload.Any())
                {
                    return(new CommandResult("The payload of response is null or empty", false));
                }
                int index = 1;
                foreach (var item in preResult.Response.Payload)
                {
                    System.Console.WriteLine($"{index++}. {item.Animal.Name} - amount: {item.Amount} szt.");
                    quarriesList.Add(item);
                }
                bool shouldWork = true;
                int  choisenOne = 0;

                do
                {
                    System.Console.Write("Wybierz zwierzyne do aktualizacji: ");
                    string userChoice = System.Console.ReadLine();
                    bool   isParsed   = int.TryParse(userChoice, out choisenOne);
                    shouldWork = isParsed ? choisenOne > quarriesList.Count(): true;
                }while(shouldWork);

                quarry.Identifier = quarriesList[choisenOne - 1].Identifier;
            }
            if (!string.IsNullOrEmpty(arguments.Identifier))
            {
                Task <ConnectorResult <Response <IEnumerable <Quarry> > > > result = WinApiConnector.RequestGet <Response <IEnumerable <Quarry> > >($"{context.ConsoleSettings.ServerAddress}:{context.ConsoleSettings.Port}/Api/Hunting/GetQuarry/" +
                                                                                                                                                    $"{arguments.Identifier}");
                ConnectorResult <Response <IEnumerable <Quarry> > > connectorResult = result.Result;
                if (!connectorResult.IsSuccess)
                {
                    return(new CommandResult(connectorResult.Message, false));
                }
                if (!connectorResult.Response.IsSuccess)
                {
                    return(new CommandResult(connectorResult.Response.Code, false));
                }
                if (!connectorResult.Response.Payload.Any())
                {
                    return(new CommandResult("The payload od response is null or empty", false));
                }
                if (connectorResult.Response.Payload.Count() != 1)
                {
                    return(new CommandResult("Too many results in payload", false));
                }
                quarry.Identifier = connectorResult.Response.Payload.FirstOrDefault().Identifier;
            }
            quarry.Amount = arguments.Amount;
            Task <ConnectorResult <Response <string> > > update     = WinApiConnector.RequestPut <Quarry, Response <string> >($"{context.ConsoleSettings.ServerAddress}:{context.ConsoleSettings.Port}/Api/Hunting/UpdateQuarry", quarry);
            ConnectorResult <Response <string> >         postResult = update.Result;

            if (!postResult.IsSuccess)
            {
                return(new CommandResult(postResult.Message, false));
            }
            if (!postResult.Response.IsSuccess)
            {
                return(new CommandResult(postResult.Response.Code, false));
            }
            if (string.IsNullOrEmpty(postResult.Response.Payload))
            {
                return(new CommandResult("The paylod of response is null or empty", false));
            }
            return(new CommandResult(postResult.Response.Payload, true));
        }
        protected override CommandResult Execute(ConsoleContext context, AnimalArguments arguments)
        {
            IList <Animal> animals      = new List <Animal>();
            Animal         updateAnimal = new Animal();

            if (string.IsNullOrEmpty(arguments.Rename))
            {
                return(new CommandResult("Przy update wymagany parametr -r <NAZWA>"));
            }

            if (string.IsNullOrEmpty(arguments.Name))
            {
                Task <ConnectorResult <Response <IEnumerable <Animal> > > > animalsList = WinApiConnector.RequestGet <Response <IEnumerable <Animal> > >($"{context.ConsoleSettings.ServerAddress}:{context.ConsoleSettings.Port}/Api/Configuration/GetAllAnimals");
                ConnectorResult <Response <IEnumerable <Animal> > >         preResponse = animalsList.Result;
                if (!preResponse.IsSuccess)
                {
                    return(new CommandResult(preResponse.Message, false));
                }
                if (!preResponse.Response.IsSuccess)
                {
                    return(new CommandResult(preResponse.Response.Code, false));
                }
                if (!preResponse.Response.Payload.Any())
                {
                    return(new CommandResult("The payload od request is null or empty", false));
                }

                foreach (var preRes in preResponse.Response.Payload)
                {
                    animals.Add(preRes);
                    System.Console.WriteLine($"{preRes.Name}");
                }

                bool shouldWork = true;
                int  choisenOne = 0;
                do
                {
                    string readLine = System.Console.ReadLine();
                    bool   isParsed = int.TryParse(readLine, out choisenOne);
                    shouldWork = isParsed ? choisenOne > animals.Count() : true;
                }while(shouldWork);

                updateAnimal.Identifier = animals[choisenOne - 1].Identifier;
            }
            if (!string.IsNullOrEmpty(arguments.Name))
            {
                Task <ConnectorResult <Response <IEnumerable <Animal> > > > existAnimal = WinApiConnector.RequestGet <Response <IEnumerable <Animal> > >($"{context.ConsoleSettings.ServerAddress}:{context.ConsoleSettings.Port}/Api/Configuration/GetAnimal/" +
                                                                                                                                                         $"{arguments.Name.ToLower()}");
                ConnectorResult <Response <IEnumerable <Animal> > > connectorResult = existAnimal.Result;

                if (!connectorResult.IsSuccess)
                {
                    return(new CommandResult(connectorResult.Message, false));
                }
                if (!connectorResult.Response.IsSuccess)
                {
                    return(new CommandResult(connectorResult.Response.Code, false));
                }
                if (!connectorResult.Response.Payload.Any())
                {
                    return(new CommandResult("The Payload of request is null or empty", false));
                }
                if (connectorResult.Response.Payload.Count() != 1)
                {
                    return(new CommandResult("There is too many results", true));
                }

                updateAnimal.Identifier = connectorResult.Response.Payload.FirstOrDefault().Identifier;
            }

            updateAnimal.Name = arguments.Rename.ToLower();
            Task <ConnectorResult <Response <string> > > result     = WinApiConnector.RequestPut <Animal, Response <string> >($"{context.ConsoleSettings.ServerAddress}:{context.ConsoleSettings.Port}/Api/Configuration/UpdateAnimal", updateAnimal);
            ConnectorResult <Response <string> >         postResult = result.Result;

            if (!postResult.IsSuccess)
            {
                return(new CommandResult(postResult.Message, false));
            }
            if (!postResult.Response.IsSuccess)
            {
                return(new CommandResult(postResult.Response.Code, false));
            }
            if (postResult.Response.Payload == null)
            {
                return(new CommandResult("The payload of response is null or empty", false));
            }

            return(new CommandResult($"The Animal {updateAnimal.Identifier} has been updated", true));
        }
Example #4
0
        protected override CommandResult Execute(ConsoleContext context, UserArgumentsExtension arguments)
        {
            IList <User> users      = new List <User>();
            User         updateUser = new User();
            Guid         identifier = Guid.Empty;

            if (string.IsNullOrEmpty(arguments.Identifier) && string.IsNullOrEmpty(arguments.Login))
            {
                Task <ConnectorResult <Response <IEnumerable <User> > > > usersRequest = WinApiConnector.RequestGet <Response <IEnumerable <User> > >($"{context.ConsoleSettings.ServerAddress}:{context.ConsoleSettings.Port}/Api/User/GetAll");
                ConnectorResult <Response <IEnumerable <User> > >         preResponse  = usersRequest.Result;

                if (!preResponse.IsSuccess)
                {
                    return(new CommandResult(preResponse.Message, false));
                }
                if (!preResponse.Response.IsSuccess)
                {
                    return(new CommandResult(preResponse.Response.Code, false));
                }
                if (!preResponse.Response.Payload.Any())
                {
                    return(new CommandResult("The payload od request is null or empty", false));
                }
                int index = 1;
                foreach (var ur in preResponse.Response.Payload)
                {
                    users.Add(ur);
                    System.Console.WriteLine($"{index++}. {ur.Login} - {ur.Identifier}");
                }

                System.Console.WriteLine($"Wybierz numer użytkownika do aktualizacji 1-{users.Count}");
                bool shouldWork = true;
                int  choisenOne = 0;
                do
                {
                    string readLine = System.Console.ReadLine();
                    bool   isParsed = int.TryParse(readLine, out choisenOne);
                    shouldWork = isParsed ? choisenOne > users.Count : true;
                }while(shouldWork);

                updateUser.Identifier = users[choisenOne - 1].Identifier;
            }

            if (!string.IsNullOrEmpty(arguments.Identifier))
            {
                var tmp = Guid.TryParse(arguments.Identifier, out identifier);
                if (!tmp)
                {
                    return(new CommandResult("Cannot parse identifier from -i param", false));
                }

                updateUser.Identifier = identifier;
            }

            if (!string.IsNullOrEmpty(arguments.Login) && string.IsNullOrEmpty(arguments.Identifier))
            {
                User tmpUser = new User()
                {
                    Login = arguments.Login
                };
                Task <ConnectorResult <Response <IEnumerable <User> > > > userByLogin = WinApiConnector.RequestGet <Response <IEnumerable <User> > >($"{context.ConsoleSettings.ServerAddress}:{context.ConsoleSettings.Port}/Api/User/GetByLogin/"
                                                                                                                                                     + $"{arguments.Login}");
                ConnectorResult <Response <IEnumerable <User> > > preResponse = userByLogin.Result;

                if (!preResponse.IsSuccess)
                {
                    return(new CommandResult(preResponse.Message, false));
                }
                if (!preResponse.Response.IsSuccess)
                {
                    return(new CommandResult(preResponse.Response.Code, false));
                }
                if (!preResponse.Response.Payload.Any())
                {
                    return(new CommandResult("The Payload of request is null or empty", false));
                }
                if (preResponse.Response.Payload.Count() != 1)
                {
                    return(new CommandResult("There is too many results", true));
                }

                updateUser.Identifier = preResponse.Response.Payload.FirstOrDefault().Identifier;
            }

            updateUser.Name     = arguments.Name;
            updateUser.Surname  = arguments.Surname;
            updateUser.Password = arguments.Password;
            updateUser.Email    = arguments.Email;
            Task <ConnectorResult <Response <User> > > result       = WinApiConnector.RequestPut <User, Response <User> >($"{context.ConsoleSettings.ServerAddress}:{context.ConsoleSettings.Port}/Api/User/Update", updateUser);
            ConnectorResult <Response <User> >         postResponse = result.Result;

            if (!postResponse.IsSuccess)
            {
                return(new CommandResult(postResponse.Message, false));
            }
            if (!postResponse.Response.IsSuccess)
            {
                return(new CommandResult(postResponse.Response.Code, false));
            }
            if (postResponse.Response.Payload == null)
            {
                return(new CommandResult("The payload of response is null or empty", false));
            }

            return(new CommandResult($"The User {updateUser.Identifier} has been updated", true));
        }