public static async Task <FeatureCatalog> FindOrCreateFeatureCatalogAsync(
            this CarContext carContext,
            Guid descriptionCatalogId,
            string name,
            bool?standart,
            string value)
        {
            var query = @"EXECUTE [dbo].[FindOrCreateFeatureCatalog] 
                          @DescriptionCatalogId,
                          @Name,
                          @Standart,
                          @Value";

            var parDescId   = CarContextExtentions.CreateParGuid("@DescriptionCatalogId", descriptionCatalogId);
            var parName     = CarContextExtentions.ParNameInput(name);
            var parStandart = CarContextExtentions.CreateParBit("@Standart", standart);
            var parValue    = CarContextExtentions.CreateParNVarchar("@Value", value, 250);

            return(carContext.FeatureCatalog.FromSqlRaw(
                       query,
                       parDescId,
                       parName,
                       parStandart,
                       parValue
                       ).AsEnumerable().First());
        }
        public static async Task <PricelistCatalog> FindOrCreatePricelistCatalogAsync
        (
            this CarContext carContext,
            string colorName,
            bool?metallic,
            string hue,
            string picture,
            string price,
            DateTime?productionFromDate,
            DateTime?validFromDate,
            Guid equipmentCatalogId
        )
        {
            var query = @"EXECUTE [dbo].[FindOrCreatePricelistCatalog] 
                        @ColorName,  
				        @Metallic,
				        @Hue,
                        @Picture,
				        @Price,
				        @ProductionFromDate,
				        @ValidFromDate,
                        @EquipmentCatalogId";

            var parColorName          = CarContextExtentions.CreateParNVarchar("@ColorName", colorName, 250);
            var parMet                = CarContextExtentions.CreateParBit("@Metallic", metallic);
            var parHue                = CarContextExtentions.CreateParNVarchar("@Hue", hue, 250);
            var parPicture            = CarContextExtentions.CreateParNVarchar("@Picture", picture, 250);
            var parPrice              = CarContextExtentions.CreateParNVarchar("@Price", price, 20);
            var parProductFromDate    = CarContextExtentions.CreateParDateTime2("@ProductionFromDate", productionFromDate);
            var parValidFromDate      = CarContextExtentions.CreateParDateTime2("@ValidFromDate", validFromDate);
            var parEquipmentCatalogId = CarContextExtentions.CreateParGuid("@EquipmentCatalogId", equipmentCatalogId);

            return(carContext.PricelistCatalog.FromSqlRaw
                   (
                       query,
                       parColorName,
                       parMet,
                       parHue,
                       parPrice,
                       parProductFromDate,
                       parValidFromDate,
                       parPicture,
                       parEquipmentCatalogId
                   ).AsEnumerable().FirstOrDefault());
        }
        public static async Task <InclusionCatalog> FindOrCreateInclusionCatalogAsync(
            this CarContext carContext,
            bool?standart,
            string description)
        {
            var query = @"EXECUTE [dbo].[FindOrCreateInclusionCatalog] 
                          @Standart,
                          @Description";

            var parStandart = CarContextExtentions.CreateParBit("@Standart", standart);
            var parDesc     = CarContextExtentions.CreateParNVarchar("@Description", description, 255);

            return(carContext.InclusionCatalog.FromSqlRaw(
                       query,
                       parStandart,
                       parDesc
                       ).AsEnumerable().First());
        }