internal static ModelSensitiveInformation Handle(List <string> listArgs, ModelSensitiveInformation modelSI)
        {
            if (listArgs.Count == 0)
            {
                return(modelSI);
            }

            ValidatorOptionCommand.Validate(listArgs[0]);
            string optionCommand = listArgs[0];

            if (!CommandOption.SI_FAVORITE.Equals(optionCommand))
            {
                listArgs.RemoveAt(0);
            }

            ValidatorArgument.Validate(listArgs);
            modelSI = BuilderSensitiveInformation.Build(optionCommand, modelSI, listArgs[0]);
            listArgs.RemoveAt(0);

            if (listArgs.Count >= 1)
            {
                Handle(listArgs, modelSI);
            }

            return(modelSI);
        }
        public void Handle(List <string> listArgs)
        {
            ValidatorArgument.Validate(listArgs);
            ValidatorOptionCommandKey.Validate(listArgs[0]);
            string optionCommandKey = listArgs[0];

            listArgs.RemoveAt(0);
            ValidatorArgument.Validate(listArgs);
            string idOrUuid = listArgs[0];

            listArgs.RemoveAt(0);
            List <ModelSensitiveInformation> listSI = CoreManagerSensitiveInformation.Read();

            if (optionCommandKey.Equals(CommandOptionKey.SI_UUID))
            {
                ModelSensitiveInformation modelSI = listSI.Find(si => si.uuid.Equals(idOrUuid));
                ValidatorIsNull.Validate(modelSI);
                modelSI = HandlerAddHelper.Handle(listArgs, modelSI);
                CoreManagerSensitiveInformation.Update(idOrUuid, modelSI);
            }
            else if (optionCommandKey.Equals(CommandOptionKey.SI_ID))
            {
                ModelSensitiveInformation modelSI = listSI.Find(si => si.id.ToString().Equals(idOrUuid));
                ValidatorIsNull.Validate(modelSI);
                modelSI = HandlerAddHelper.Handle(listArgs, modelSI);
                CoreManagerSensitiveInformation.Update(Int32.Parse(idOrUuid), modelSI);
            }

            Console.WriteLine("Update sucessfully");
        }
        public static ModelSensitiveInformation GetModel(EntitySensitiveInformation entitySI)
        {
            ModelSensitiveInformation modelSI = new ModelSensitiveInformation();

            modelSI.id   = entitySI.id;
            modelSI.uuid = entitySI.uuid.ToString();
            modelSI.type = ConvertStringToEnum <EnumSIType> .Convert(entitySI.type);

            modelSI.informationName    = entitySI.informationName;
            modelSI.containerName      = entitySI.containerName;
            modelSI.notes              = entitySI.notes;
            modelSI.username           = entitySI.username;
            modelSI.password           = entitySI.password;
            modelSI.cardName           = entitySI.cardName;
            modelSI.cardEntity         = entitySI.cardEntity;
            modelSI.cardNumber         = entitySI.cardNumber;
            modelSI.cardExpirationDate = entitySI.cardExpirationDate;
            modelSI.cardSecurityNumber = entitySI.cardSecurityNumber;
            modelSI.contactName        = entitySI.contactName;
            modelSI.contactLastname    = entitySI.contactLastname;
            modelSI.businessName       = entitySI.businessName;
            modelSI.postalCode         = entitySI.postalCode;
            modelSI.country            = entitySI.country;
            modelSI.state              = entitySI.state;
            modelSI.birthday           = entitySI.birthday;
            modelSI.favorite           = entitySI.favorite;
            modelSI.contentKey         = entitySI.contentKey;
            modelSI.tagsList           = ConvertStringToList <string> .Convert(entitySI.tagsList);

            modelSI.addressesList = ConvertStringToList <string> .Convert(entitySI.addressesList);

            modelSI.phoneNumbersList = ConvertStringToList <string> .Convert(entitySI.phoneNumbersList);

            modelSI.emailsList = ConvertStringToList <string> .Convert(entitySI.emailsList);

            modelSI.urlsList = ConvertStringToList <string> .Convert(entitySI.urlsList);

            return(modelSI);
        }
        public static EntitySensitiveInformation GetEntity(ModelSensitiveInformation modelSI)
        {
            EntitySensitiveInformation entitySI = new EntitySensitiveInformation();

            entitySI.type               = modelSI.type.ToString();
            entitySI.informationName    = modelSI.informationName;
            entitySI.containerName      = modelSI.containerName;
            entitySI.notes              = modelSI.notes;
            entitySI.username           = modelSI.username;
            entitySI.password           = modelSI.password;
            entitySI.cardName           = modelSI.cardName;
            entitySI.cardEntity         = modelSI.cardEntity;
            entitySI.cardNumber         = modelSI.cardNumber;
            entitySI.cardExpirationDate = modelSI.cardExpirationDate;
            entitySI.cardSecurityNumber = modelSI.cardSecurityNumber;
            entitySI.contactName        = modelSI.contactName;
            entitySI.contactLastname    = modelSI.contactLastname;
            entitySI.businessName       = modelSI.businessName;
            entitySI.postalCode         = modelSI.postalCode;
            entitySI.country            = modelSI.country;
            entitySI.state              = modelSI.state;
            entitySI.birthday           = modelSI.birthday;
            entitySI.favorite           = modelSI.favorite;
            entitySI.contentKey         = modelSI.contentKey;
            entitySI.tagsList           = ConvertListToString <string> .Convert(modelSI.tagsList);

            entitySI.addressesList = ConvertListToString <string> .Convert(modelSI.addressesList);

            entitySI.phoneNumbersList = ConvertListToString <string> .Convert(modelSI.phoneNumbersList);

            entitySI.emailsList = ConvertListToString <string> .Convert(modelSI.emailsList);

            entitySI.urlsList = ConvertListToString <string> .Convert(modelSI.urlsList);

            return(entitySI);
        }
        public static void Update(string uuid, ModelSensitiveInformation modelSI)
        {
            EntitySensitiveInformation entitySI = MappingModelToEntity.GetEntity(modelSI);

            CrudManagerSensitiveInformation.Update(uuid, entitySI);
        }
        public static void Create(ModelSensitiveInformation modelSI)
        {
            EntitySensitiveInformation entitySI = MappingModelToEntity.GetEntity(modelSI);

            CrudManagerSensitiveInformation.Create(entitySI);
        }
        internal static ModelSensitiveInformation Build(
            string optionCommand,
            ModelSensitiveInformation modelSI,
            string value)
        {
            switch (optionCommand)
            {
            case CommandOption.SI_TYPE:
                ValidatorEnumSIType.Valid(value);
                modelSI.type = ConvertStringToEnum <EnumSIType> .Convert(value);

                break;

            case CommandOption.SI_NAME:
                modelSI.informationName = value;
                break;

            case CommandOption.SI_CONTAINER:
                modelSI.containerName = value;
                break;

            case CommandOption.SI_NOTES:
                modelSI.notes = value;
                break;

            case CommandOption.SI_USERNAME:
                modelSI.username = value;
                break;

            case CommandOption.SI_PASSWORD:
                modelSI.password = value;
                break;

            case CommandOption.SI_CARD_NAME:
                modelSI.cardName = value;
                break;

            case CommandOption.SI_CARD_ENTITY:
                modelSI.cardEntity = value;
                break;

            case CommandOption.SI_CARD_NUMBER:
                modelSI.cardNumber = value;
                break;

            case CommandOption.SI_CARD_EXP_DATE:
                modelSI.cardExpirationDate = DateTime.Parse(value);
                break;

            case CommandOption.SI_CARD_SECURITY_NUMBER:
                modelSI.cardSecurityNumber = Int32.Parse(value);
                break;

            case CommandOption.SI_CONTACT_NAME:
                modelSI.contactName = value;
                break;

            case CommandOption.SI_CONTACT_LAST_NAME:
                modelSI.contactLastname = value;
                break;

            case CommandOption.SI_BUSSINES_NAME:
                modelSI.businessName = value;
                break;

            case CommandOption.SI_POSTAL_CODE:
                modelSI.postalCode = Int32.Parse(value);
                break;

            case CommandOption.SI_COUNTRY:
                modelSI.country = value;
                break;

            case CommandOption.SI_STATE:
                modelSI.state = value;
                break;

            case CommandOption.SI_BIRTHDAY:
                modelSI.birthday = DateTime.Parse(value);
                break;

            case CommandOption.SI_FAVORITE:
                modelSI.favorite = true;
                break;

            case CommandOption.SI_CONTENT_KEY:
                modelSI.contentKey = value;
                break;

            case CommandOption.SI_URLS_LIST:
                modelSI.urlsList.AddRange(value.Split(sign));
                break;

            case CommandOption.SI_TAGS_LIST:
                modelSI.tagsList.AddRange(value.Split(sign));
                break;

            case CommandOption.SI_EMAILS_LIST:
                modelSI.emailsList.AddRange(value.Split(sign));
                break;

            case CommandOption.SI_PHONE_NUMBERS_LIST:
                modelSI.phoneNumbersList.AddRange(value.Split(sign));
                break;

            case CommandOption.SI_ADDRESSES_LIST:
                modelSI.addressesList.AddRange(value.Split(sign));
                break;
            }

            return(modelSI);
        }