public async Task<IResult<int>> CreateCustomFieldAsync(int collectionId, CustomField customField)
        {
            IResult<int> result = null;

            if (customField == null)
            {
                result = new ShopTimeResult<int>() { Error = new Error()
                {
                    CodeNumber = 500,
                    Message = "customField can't be null."
                }};
            }

            try
            {
                customField.StoreId = _token.Store.Id;
                customField.Type = CustomFieldType.Collection;
                customField.ParentId = collectionId;

                if (customField.Key.IsNullOrWhiteSpace() == false && customField.Value.IsNullOrWhiteSpace() == false)
                {
                    customField.Key = customField.Key.Trim();
                    customField.Value = customField.Value.Trim();
                }

                customField.AuditInfo = new AuditInfo(_token);
                await _customFieldRepo.InsertAsync(customField).Complete(err =>
                {
                    if (err != null)
                    {
                        result = new ShopTimeResult<int>() {Error = err};
                    }

                    result = new ShopTimeResult<int>(customField.Id);
                });

            }
            catch (Exception ex)
            {
                result = new ShopTimeResult<int>()
                {
                    Error = new Error() { CodeNumber = 500, Message = ex.Message }
                };
                
            }

            return result;
        }
        public async Task<IResult> UpdateCustomFieldAsync(CustomField customField)
        {
            IResult result = null;

            if (customField == null)
            {
                result = new ShopTimeResult()
                {
                    Error = new Error()
                    {
                        CodeNumber = 500,
                        Message = "customField can't be null."
                    }
                };
                return result;
            }

            if (customField.StoreId != _token.Store.Id)
            {
                result = new ShopTimeResult()
                {
                    Error = new Error()
                    {
                        CodeNumber = 500,
                        Message = "invalid operation."
                    }
                };
                return result;
            }


            try
            {
                customField.AuditInfo = new AuditInfo(_token);
                var updateResult = await _customFieldRepo.UpdateAsync(customField);

                if (updateResult.Error != null)
                {
                    result = new ShopTimeResult() {Error = updateResult.Error};
                    return result;
                }

                result = new ShopTimeResult();
            }
            catch (Exception ex)
            {
                result = new ShopTimeResult()
                {
                    Error = new Error() { CodeNumber = 500, Message = ex.Message }
                };
            }

            return result;
        }
        public void CreateCustomFieldTest()
        {
            var metaData = new CustomField();
            metaData.Id = 5;
            metaData.Key = "App_Code";
            metaData.Value = "ABC123";

            var metaResult = new ShopTimeResult<int>(5) {ResultValue = metaData.Id};
            var notFoundResult = new ShopTimeResult<int> {Error = new Error() {CodeNumber = 404}};
            var badResult = new ShopTimeResult<int> {Error = new Error()};

            var metaTask = Task.FromResult<IResult<int>>(metaResult);
            var noutFoundTask = Task.FromResult<IResult<int>>(notFoundResult);
            var badTask = Task.FromResult<IResult<int>>(badResult);

            _collectionServiceMock.Setup(x => x.CreateCustomFieldAsync(6, It.IsAny<CustomField>())).Returns(metaTask);
            _collectionServiceMock.Setup(x => x.CreateCustomFieldAsync(99, It.IsAny<CustomField>())).Returns(noutFoundTask);
            _collectionServiceMock.Setup(x => x.CreateCustomFieldAsync(4, It.IsAny<CustomField>())).Returns(badTask);
            var collectionsController = new CollectionsV1Controller(_collectionServiceMock.Object);
            
            //return result
            var actionResult = collectionsController.CreateCustomFieldAsync(6, new CustomFieldModel()).Result;
            var response = actionResult as CreatedAtRouteNegotiatedContentResult<int>;
            response.Content.Should().Be(metaData.Id);
            response.RouteName.Should().Be("GetCustomFieldById");
            response.RouteValues["collectionId"].Should().Be(6);
            response.RouteValues["metaDataId"].Should().Be(metaData.Id);

            //result not found test
            actionResult = collectionsController.CreateCustomFieldAsync(99, new CustomFieldModel()).Result;
            actionResult.Should().BeOfType<NotFoundResult>();

            //bad request
            actionResult = collectionsController.CreateCustomFieldAsync(4, new CustomFieldModel()).Result;
            actionResult.Should().BeOfType<BadRequestResult>();

            _collectionServiceMock.VerifyAll();
        }
        public void GetCustomFieldTest()
        {
            var data = new List<CustomField>();

            for (int i = 1; i < 3; i++)
            {
                var singleM = new CustomField();
                singleM.Id = i;
                singleM.Key = "hometext";
                singleM.Value = "true";
                data.Add(singleM);
            }

            var metaResult = new ShopTimeResult<IList<CustomField>>(data);
            var notFoundResult = new ShopTimeResult<IList<CustomField>> {Error = new Error() {CodeNumber = 404}};
            var emptyResult = new ShopTimeResult<IList<CustomField>>();

            var metaTask = Task.FromResult<IResult<IList<CustomField>>>(metaResult);
            var notFoundTask = Task.FromResult<IResult<IList<CustomField>>>(notFoundResult);
            var emptyTask = Task.FromResult<IResult<IList<CustomField>>>(emptyResult);

            _collectionServiceMock.Setup(x => x.GetCustomFieldsAsync(3, true)).Returns(metaTask);
            _collectionServiceMock.Setup(x => x.GetCustomFieldsAsync(99, true)).Returns(notFoundTask);
            _collectionServiceMock.Setup(x => x.GetCustomFieldsAsync(58, true)).Returns(emptyTask);
            var collectionsController = new CollectionsV1Controller(_collectionServiceMock.Object);
            
            //get meta data
            var actionResult = collectionsController.GetCustomFieldsAsync(3).Result;
            var response = actionResult as OkNegotiatedContentResult<IList<CustomFieldModel>>;
            response.Content.Count.Should().Be(2);
            var metaModel = response.Content[1];
            metaModel.Id.Should().Be(2);
            metaModel.Key.Should().Be("hometext");

            //not found test
            actionResult = collectionsController.GetCustomFieldsAsync(99).Result;
            actionResult.Should().BeOfType<NotFoundResult>();

            //empty test
            actionResult = collectionsController.GetCustomFieldsAsync(58).Result;
            var statusCoderesult = actionResult as StatusCodeResult;
            statusCoderesult.StatusCode.Should().Be(HttpStatusCode.NoContent);

            _collectionServiceMock.VerifyAll();
        }
        public void GetSingleMetaDataTest()
        {
            var singleM = new CustomField();
            singleM.Id = 108;
            singleM.Key = "hometext";
            singleM.Value = "true";

            var metaResult = new ShopTimeResult<CustomField>(singleM);
            var badResult = new ShopTimeResult<CustomField> {Error = new Error()};
            var notFoundResult = new ShopTimeResult<CustomField> {Error = new Error() {CodeNumber = 404}};


            var metaTask = Task.FromResult<IResult<CustomField>>(metaResult);
            var badTask = Task.FromResult<IResult<CustomField>>(badResult);
            var notFoundTask = Task.FromResult<IResult<CustomField>>(notFoundResult);
            

            _collectionServiceMock.Setup(x => x.GetCustomFieldAsync(3, 108)).Returns(metaTask);
            _collectionServiceMock.Setup(x => x.GetCustomFieldAsync(99, 99)).Returns(notFoundTask);
            _collectionServiceMock.Setup(x => x.GetCustomFieldAsync(0, 0)).Returns(badTask);
            var collectionsController = new CollectionsV1Controller(_collectionServiceMock.Object);
            
            //single test
            var actionResult = collectionsController.GetCustomFieldAsync(3, 108).Result;
            var response = actionResult as OkNegotiatedContentResult<CustomFieldModel>;
            var metaModel = response.Content;
            metaModel.Id.Should().Be(singleM.Id);
            metaModel.Key.Should().Be(singleM.Key);
            metaModel.Value.Should().Be(singleM.Value);

            //notFound test
            actionResult = collectionsController.GetCustomFieldAsync(99, 99).Result;
            actionResult.Should().BeOfType<NotFoundResult>();

            //badresult request
            actionResult = collectionsController.GetCustomFieldAsync(0, 0).Result;
            actionResult.Should().BeOfType<BadRequestResult>();

            _collectionServiceMock.VerifyAll();
        }
Exemple #6
0
        public async Task Creaet_CustomFields_with_duplicate_key()
        {
            var myCustomField = new CustomField()
            {
                Key = "Jason.abc",
                Value = "true",
            };

            await _collectionService.CreateCustomFieldAsync(1, myCustomField).Error(err =>
            {
                err.Should().NotBeNull();
            });
        }
Exemple #7
0
        public async Task Creaet_CustomFields()
        {
            var myCustomField = new CustomField()
            {
                Key = "Jason.abc",
                Value = "true",
            };

            int newCustomFieldId = 0;
            await _collectionService.CreateCustomFieldAsync(1, myCustomField).Success(newId =>
            {
                newCustomFieldId = newId;
            });

            await _collectionService.GetCustomFieldAsync(1, newCustomFieldId).Success(customField =>
            {
                customField.Should().NotBeNull();
                customField.Id.Should().BeGreaterThan(1);
                customField.Type.Should().Be(CustomFieldType.Collection);
                customField.ParentId.Should().Be(1);
                customField.Key.Should().Be(myCustomField.Key);
                customField.Value.Should().Be(myCustomField.Value);
            });

        }