public async Task<HttpResponseMessage> AddOrUpdateAsync(QuantityConditionViewModel postedData)
        {
            var mapper = GetMapper();
            QuantityCondition quantityCondition = mapper.Map<QuantityCondition>(postedData);

            var resultValue = await quantityConditionBusiness.AddOrUpdateQuantityConditionAsync(quantityCondition);
            if (!resultValue.ReturnStatus)
            {
                return CreateErrorResponse(resultValue);
            }
            postedData.Id = resultValue.ResultValue.Id;
            var goodsQ = resultValue.ResultValue.GoodsQuantityConditions.FirstOrDefault();
            if (goodsQ != null)
            {
                var viewGoodsQ = postedData.GoodsQuantityConditions.First();
                viewGoodsQ.Id = goodsQ.Id;
                foreach (var branchQ in goodsQ.BranchQuantityConditions)
                {
                    viewGoodsQ.BranchQuantityConditions.Single(x => x.BranchId == branchQ.BranchId).Id = branchQ.Id;
                }
            }
            
           

            return CreateViewModelResponse(postedData, resultValue);
        }
Ejemplo n.º 2
0
        public async Task <IBusinessResultValue <QuantityCondition> > AddOrUpdateQuantityConditionAsync(QuantityCondition entity)
        {
            var result = new BusinessResultValue <QuantityCondition>();

            try
            {
                var validatorResult = await validator.ValidateAsync(entity);

                if (validatorResult.IsValid == false)
                {
                    result.PopulateValidationErrors(validatorResult.Errors);
                    result.ReturnStatus = false;
                    return(result);
                }

                unitOfWork.QuantityConditionDataService.InsertOrUpdate(entity);
                await unitOfWork.CommitAsync();

                result.ResultValue  = entity;
                result.ReturnStatus = true;
                result.ReturnMessage.Add("ثبت اطلاعات با موفقیت انجام گردید");
            }
            catch (DbEntityValidationException ex)
            {
                result.PopulateValidationErrors(ex);
                result.ReturnStatus = false;
                Logger.Error(ex, "");
            }
            catch (Exception ex)
            {
                CatchException(ex, result, "");
            }
            return(result);
        }
        public async Task GetQuantityConditionAsync_CreateMockData_ByCreateInstance_Test()
        {
            //Arrange
            QuantityCondition quantityCondition = new QuantityCondition();

            quantityCondition.Goal = new Goal()
            {
                Id = 10,
                GoalGoodsCategory = new GoalGoodsCategory()
                {
                    Name = "GoalGoodsCategory_Test"
                }
            };
            quantityCondition.GoalId   = 10;
            quantityCondition.Quantity = 20;
            quantityCondition.ExtraEncouragePercent = 1.3M;


            GoodsQuantityCondition qoodsQuantityCondition = new GoodsQuantityCondition();

            qoodsQuantityCondition.Quantity = 30;
            qoodsQuantityCondition.Goods    = new Goods()
            {
                EnName = "Drug No 1"
            };

            qoodsQuantityCondition.BranchQuantityConditions.Add(new BranchQuantityCondition()
            {
                Quantity = 40,
                Branch   = new Branch()
                {
                    Name = "Branch 1"
                }
            });

            qoodsQuantityCondition.BranchQuantityConditions.Add(new BranchQuantityCondition()
            {
                Quantity = 50,
                Branch   = new Branch()
                {
                    Name = "Branch 2"
                }
            });

            quantityCondition.GoodsQuantityConditions.Add(qoodsQuantityCondition);

            var quantityConditionBusinessService = _kernel.GetMock <IQuantityConditionBS>();
            var businessResultValue = _kernel.Get <IBusinessResultValue <QuantityCondition> >();

            businessResultValue.ReturnStatus = true;
            businessResultValue.ResultValue  = quantityCondition;
            quantityConditionBusinessService.Setup(x => x.LoadQuantityConditionAsync(It.IsAny <int>()))
            .ReturnsAsync(businessResultValue);


            QuantityConditionServiceController controller = new QuantityConditionServiceController(quantityConditionBusinessService.Object);

            controller.Request = new HttpRequestMessage();
            controller.Request.SetConfiguration(new System.Web.Http.HttpConfiguration());
            //Act
            var result = await controller.GetQuantityConditionAsync(10);

            QuantityConditionViewModel vModel = new QuantityConditionViewModel();
            bool checkGetResult = result.TryGetContentValue(out vModel);

            //Assert
            Assert.IsTrue(checkGetResult);
            Assert.AreEqual(vModel.GoalCategoryName, quantityCondition.Goal.GoalGoodsCategory.Name);
            Assert.AreEqual(vModel.GoodsQuantityConditions.Count, quantityCondition.GoodsQuantityConditions.Count);
        }