Example #1
0
        public IActionResult GetSpecificationAttributes(SpecifcationAttributesParametersModel parameters)
        {
            if (parameters.Limit < Configurations.MinLimit || parameters.Limit > Configurations.MaxLimit)
            {
                return(Error(HttpStatusCode.BadRequest, "limit", "invalid limit parameter"));
            }

            if (parameters.Page < Configurations.DefaultPageValue)
            {
                return(Error(HttpStatusCode.BadRequest, "page", "invalid page parameter"));
            }

            var specificationAttribtues = _specificationAttributeApiService.GetSpecificationAttributes(limit: parameters.Limit, page: parameters.Page, sinceId: parameters.SinceId);

            var specificationAttributeDtos = specificationAttribtues.Select(x => _dtoHelper.PrepareSpecificationAttributeDto(x)).ToList();

            var specificationAttributesRootObject = new SpecificationAttributesRootObjectDto()
            {
                SpecificationAttributes = specificationAttributeDtos
            };

            var json = JsonFieldsSerializer.Serialize(specificationAttributesRootObject, parameters.Fields);

            return(new RawJsonActionResult(json));
        }
Example #2
0
        public IActionResult UpdateSpecificationAttribute([ModelBinder(typeof(JsonModelBinder <SpecificationAttributeDto>))] Delta <SpecificationAttributeDto> specificationAttributeDelta)
        {
            // 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 specificationAttributeId = specificationAttributeDelta.Dto.Id;

            var specificationAttribute = _specificationAttributeService.GetSpecificationAttributeById(specificationAttributeId);

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

            specificationAttributeDelta.Merge(specificationAttribute);

            _specificationAttributeService.UpdateSpecificationAttribute(specificationAttribute);

            _customerActivityService.InsertActivity("EditSpecAttribute", _localizationService.GetResource("ActivityLog.EditSpecAttribute"), specificationAttribute.Id.ToString());

            // Preparing the result dto of the new product attribute
            var specificationAttributeDto = _dtoHelper.PrepareSpecificationAttributeDto(specificationAttribute);

            var specificatoinAttributesRootObjectDto = new SpecificationAttributesRootObjectDto();

            specificatoinAttributesRootObjectDto.SpecificationAttributes.Add(specificationAttributeDto);

            var json = _jsonFieldsSerializer.Serialize(specificatoinAttributesRootObjectDto, string.Empty);

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

            // Inserting the new product
            var specificationAttribute = new SpecificationAttribute();

            specificaitonAttributeDelta.Merge(specificationAttribute);

            _specificationAttributeService.InsertSpecificationAttribute(specificationAttribute);

            _customerActivityService.InsertActivity("AddNewSpecAttribute", _localizationService.GetResource("ActivityLog.AddNewSpecAttribute"), specificationAttribute.Id.ToString());

            // Preparing the result dto of the new product
            var specificationAttributeDto = _dtoHelper.PrepareSpecificationAttributeDto(specificationAttribute);

            var specificationAttributesRootObjectDto = new SpecificationAttributesRootObjectDto();

            specificationAttributesRootObjectDto.SpecificationAttributes.Add(specificationAttributeDto);

            var json = _jsonFieldsSerializer.Serialize(specificationAttributesRootObjectDto, string.Empty);

            return(new RawJsonActionResult(json));
        }
Example #4
0
        public IActionResult UpdateSpecificationAttribute([ModelBinder(typeof(JsonModelBinder <SpecificationAttributeDto>))] Delta <SpecificationAttributeDto> specificaitonAttributeDelta)
        {
            // Here we display the errors if the validation has failed at some point.
            if (!ModelState.IsValid)
            {
                return(Error());
            }

            var specificationAttribute = new SpecificationAttribute();

            specificaitonAttributeDelta.Merge(specificationAttribute);

            if (specificationAttribute.Id <= 0)
            {
                _specificationAttributeService.InsertSpecificationAttribute(specificationAttribute);
            }

            var options = new List <SpecificationAttributeOption>();

            if (specificaitonAttributeDelta.Dto.SpecificationAttributeOptions?.Any() == true)
            {
                var ix = 0;
                foreach (var option in specificaitonAttributeDelta.Dto.SpecificationAttributeOptions)
                {
                    if (option.Id <= 0)
                    {
                        var opt = new SpecificationAttributeOption
                        {
                            Name = option.Name,
                            SpecificationAttributeId = specificationAttribute.Id,
                            DisplayOrder             = ix
                        };
                        ix++;
                        _specificationAttributeService.InsertSpecificationAttributeOption(opt);
                        options.Add(opt);
                    }
                }
            }

            CustomerActivityService.InsertActivity("UpdateSpecAttribute", LocalizationService.GetResource("ActivityLog.AddNewSpecAttribute"), specificationAttribute);

            // Preparing the result dto of the new product
            var specificationAttributeDto = _dtoHelper.PrepareSpecificationAttributeDto(specificationAttribute);

            specificationAttributeDto.SpecificationAttributeOptions = new List <SpecificationAttributeOptionDto>();
            foreach (var option in options)
            {
                specificationAttributeDto.SpecificationAttributeOptions.Add(_dtoHelper.PrepareSpecificationAttributeOptionDto(option));
            }
            var specificationAttributesRootObjectDto = new SpecificationAttributesRootObjectDto();

            specificationAttributesRootObjectDto.SpecificationAttributes.Add(specificationAttributeDto);

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

            return(new RawJsonActionResult(json));
        }
Example #5
0
        public IActionResult GetSpecificationAttributeById(int id, string fields = "")
        {
            if (id <= 0)
            {
                return(Error(HttpStatusCode.BadRequest, "id", "invalid id"));
            }

            var specificationAttribute = _specificationAttributeService.GetSpecificationAttributeById(id);

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

            var specificationAttributeDto = _dtoHelper.PrepareSpecificationAttributeDto(specificationAttribute);

            var specificationAttributesRootObject = new SpecificationAttributesRootObjectDto();

            specificationAttributesRootObject.SpecificationAttributes.Add(specificationAttributeDto);

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

            return(new RawJsonActionResult(json));
        }