예제 #1
0
        public IActionResult UpdateSpecificationAttributeOption([ModelBinder(typeof(JsonModelBinder <SpecificationAttributeOptionDto>))] Delta <SpecificationAttributeOptionDto> specificationAttributeOptionDelta)
        {
            // Here we display the errors if the validation has failed at some point.
            if (!ModelState.IsValid)
            {
                return(Error());
            }

            // We do not need to validate the product attribute id, because this will happen in the model binder using the dto validator.
            int saoId = specificationAttributeOptionDelta.Dto.Id;

            SpecificationAttributeOption specificationAttributeOption = _specificationAttributeService.GetSpecificationAttributeOptionById(saoId);

            if (specificationAttributeOption == null)
            {
                return(Error(HttpStatusCode.NotFound, "specification attribute options", "not found"));
            }

            specificationAttributeOptionDelta.Merge(specificationAttributeOption);

            _specificationAttributeService.UpdateSpecificationAttributeOption(specificationAttributeOption);

            UpdateLocalesSpecificationAttributeOption(specificationAttributeOption, specificationAttributeOptionDelta.Dto.LocalizedNames);

            // Preparing the result dto of the new product attribute
            SpecificationAttributeOptionDto specificationAttributeOptionDto = _dtoHelper.PrepareSpecificationAttributeOptionDTO(specificationAttributeOption);

            var saoRootObjectDto = new SpecificationAttributesOptionRootObjectDto();

            saoRootObjectDto.SpecificationAttributeOptions.Add(specificationAttributeOptionDto);

            var json = JsonFieldsSerializer.Serialize(saoRootObjectDto, string.Empty);

            return(new RawJsonActionResult(json));
        }
예제 #2
0
        public IActionResult GetOptionsBySpecificationAttributeId(int id, string fields = "")
        {
            if (id <= 0)
            {
                return(Error(HttpStatusCode.BadRequest, "id", "invalid id"));
            }

            var specificationAttributeOptions = _specificationAttributeService.GetSpecificationAttributeOptionsBySpecificationAttribute(id);

            if (specificationAttributeOptions == null)
            {
                return(Error(HttpStatusCode.NotFound, "specification attribute options", "not found"));
            }

            IList <SpecificationAttributeOptionDto> attributesOptionAsDtos = specificationAttributeOptions.Select(specificAttribute =>
            {
                return(_dtoHelper.PrepareSpecificationAttributeOptionDTO(specificAttribute));
            }).ToList();

            var productAttributesRootObject = new SpecificationAttributesOptionRootObjectDto()
            {
                SpecificationAttributeOptions = attributesOptionAsDtos
            };

            var json = JsonFieldsSerializer.Serialize(productAttributesRootObject, fields);

            return(new RawJsonActionResult(json));
        }
예제 #3
0
        public IActionResult CreateSpecificationAttributeOption([ModelBinder(typeof(JsonModelBinder <SpecificationAttributeOptionDto>))] Delta <SpecificationAttributeOptionDto> specificationAttributeOptionDelta)
        {
            // Here we display the errors if the validation has failed at some point.
            if (!ModelState.IsValid)
            {
                return(Error());
            }

            // Inserting the new product
            SpecificationAttributeOption sao = new SpecificationAttributeOption();

            specificationAttributeOptionDelta.Merge(sao);

            _specificationAttributeService.InsertSpecificationAttributeOption(sao);

            UpdateLocalesSpecificationAttributeOption(sao, specificationAttributeOptionDelta.Dto.LocalizedNames);


            // Preparing the result dto of the new product
            SpecificationAttributeOptionDto specificationAttributeOptionDto = _dtoHelper.PrepareSpecificationAttributeOptionDTO(sao);

            var saoRootObjectDto = new SpecificationAttributesOptionRootObjectDto();

            saoRootObjectDto.SpecificationAttributeOptions.Add(specificationAttributeOptionDto);

            var json = JsonFieldsSerializer.Serialize(saoRootObjectDto, string.Empty);

            return(new RawJsonActionResult(json));
        }
예제 #4
0
        public IActionResult GetOptions()
        {
            var specificationAttributeOptions = _productAttributesApiService.GetSpecificationAttributeOptions();

            if (specificationAttributeOptions == null)
            {
                return(Error(HttpStatusCode.NotFound, "No specification attribute options found", "not found"));
            }

            IList <SpecificationAttributeOptionDto> attributesOptionAsDtos = specificationAttributeOptions.Select(specificAttribute =>
            {
                return(_dtoHelper.PrepareSpecificationAttributeOptionDTO(specificAttribute));
            }).ToList();

            var productAttributesRootObject = new SpecificationAttributesOptionRootObjectDto()
            {
                SpecificationAttributeOptions = attributesOptionAsDtos
            };

            var json = JsonFieldsSerializer.Serialize(productAttributesRootObject, null);

            return(new RawJsonActionResult(json));
        }