コード例 #1
0
        /// <summary>
        /// Map Rate Plans while inserting record
        /// </summary>
        /// <param name="source"></param>
        /// <param name="userName"></param>
        /// <returns></returns>
        public static List <RatePlans> MapToRatePlansModel(RateCategoryViewModel source, string userName)
        {
            List <RatePlans> ratePlansResult = new List <RatePlans>();

            foreach (var item in source.RoomTypeList)
            {
                if (item.ObjectState == ObjectState.Added)
                {
                    var destination = AutoMapper.Mapper.Map <RatePlansViewModel, RatePlans>(item);
                    destination.RateCategoryId = source.Id;
                    destination.CreatedBy      = userName;
                    destination.UpdatedBy      = userName;
                    destination.CreatedDate    = DateTime.Now.JakartaOffset();
                    destination.UpdatedDate    = DateTime.Now.JakartaOffset();
                    destination.IsActive       = true;
                    if (item.IsSelected)
                    {
                        destination.IsDeleted = false;
                    }
                    else
                    {
                        destination.IsDeleted = true;
                    }

                    ratePlansResult.Add(destination);
                }
            }
            return(ratePlansResult);
        }
コード例 #2
0
        /// <summary>
        /// Method to Add RateCategory
        /// </summary>
        /// <param name="rateCategoryViewModel"></param>
        /// <param name="userName"></param>
        /// <returns></returns>
        public async Task <BaseResult <RateCategory> > AddRateCategory(RateCategoryViewModel rateCategoryViewModel, string userName)
        {
            BaseResult <RateCategory> result = new BaseResult <RateCategory>();

            result.Result = new RateCategory();
            //Map Rate Category
            var rateCategoryResult = RatesCategoryRequestMapper.MapToRateCategoryModel(rateCategoryViewModel, userName);

            //Insert Rate Category first
            var insertResult = await iRateCategoryLibrary.InsertEntity(rateCategoryResult).ConfigureAwait(false);

            if (insertResult.IsError || insertResult.ExceptionMessage != null)
            {
                result.IsError          = true;
                result.ExceptionMessage = insertResult.ExceptionMessage;
                return(result);
            }
            else if (insertResult.Result > default(long))
            {
                //Assign Rate Category Id
                rateCategoryViewModel.Id = (int)insertResult.Result;

                //Add Rate Plans
                result = await AddRatePlans(rateCategoryViewModel, userName).ConfigureAwait(false);
            }
            return(result);
        }
コード例 #3
0
        /// <summary>
        /// Add/Edit RateCategory
        /// </summary>
        /// <param name="rateCategoryViewModel"></param>
        /// <returns>List of RatePlans</returns>
        public async Task <BaseResult <RateCategory> > SaveAndUpdateRateCategory(RateCategoryViewModel rateCategoryViewModel, string userName)
        {
            BaseResult <RateCategory> result = new BaseResult <RateCategory>();

            result.Result = new RateCategory();

            if (rateCategoryViewModel.ObjectState == ObjectState.Added)
            {
                result = await AddRateCategory(rateCategoryViewModel, userName).ConfigureAwait(false);
            }
            else if (rateCategoryViewModel.ObjectState == ObjectState.Modified)
            {
                result = await UpdateRateCategory(rateCategoryViewModel, userName).ConfigureAwait(false);
            }
            else if (rateCategoryViewModel.ObjectState == ObjectState.Unchanged)
            {
                foreach (var item in rateCategoryViewModel.RoomTypeList)
                {
                    if (item.ObjectState == ObjectState.Modified)
                    {
                        result = await UpdateRatePlans(item, userName).ConfigureAwait(false);
                    }
                    else if (item.ObjectState == ObjectState.Added)//If new room is added
                    {
                        result = await AddRatePlans(rateCategoryViewModel, userName).ConfigureAwait(false);
                    }
                }
            }
            return(result);
        }
コード例 #4
0
        public async Task TestUpdateRateCategory_Failed_ByGetListByPredicate_Error()
        {
            //Arrange
            var rateCategoryViewModel = new RateCategoryViewModel()
            {
                Id                   = 1,
                Name                 = "RC1",
                MarketId             = 2,
                CancellationPolicyId = 2,
                HotelMealId          = 2,
                IsActive             = true
            };

            rateCategoryViewModel.ObjectState = ObjectState.Modified;
            int rateCategoryId = 1;
            BaseResult <List <RateCategory> > baseResult = new BaseResult <List <RateCategory> >();

            baseResult.Result = null;
            var pred = new Func <RateCategory, bool>(x => x.Id == rateCategoryId && !x.IsDeleted);

            iRateCategoryLibrary.Setup(x => x.GetListByPredicate(It.Is <Func <RateCategory, bool> >(y => y.GetType() == pred.GetType()))).Returns(Task.FromResult(baseResult));

            //Act
            Task <BaseResult <RateCategory> > actionResult = rateCategoryRepository.SaveAndUpdateRateCategory(rateCategoryViewModel, It.IsAny <string>());

            //Assert
            Assert.IsTrue(actionResult.Result.IsError);
            Assert.IsTrue(actionResult.Result.Message != null);
        }
コード例 #5
0
        /// <summary>
        /// Method to Add RatePlan
        /// </summary>
        /// <param name="rateCategoryViewModel"></param>
        /// <param name="userName"></param>
        /// <returns>RateCategory</returns>
        public async Task <BaseResult <RateCategory> > AddRatePlans(RateCategoryViewModel rateCategoryViewModel, string userName)
        {
            BaseResult <RateCategory> result = new BaseResult <RateCategory>();

            result.Result = new RateCategory();

            //Map RatePlans
            var ratePlansResult = RatesCategoryRequestMapper.MapToRatePlansModel(rateCategoryViewModel, userName);

            foreach (var item in ratePlansResult)
            {
                var rateplan = await iRatePlansLibrary.GetListByPredicate(x => x.RateCategoryId == item.RateCategoryId && x.RoomId == item.RoomId && x.IsActive).ConfigureAwait(false);

                if (rateplan.Result == null || !rateplan.Result.Any())
                {
                    //Insert RatePlans
                    var rateplanInsertResult = await iRatePlansLibrary.InsertEntity(item).ConfigureAwait(false);

                    if (rateplanInsertResult.IsError || rateplanInsertResult.ExceptionMessage != null)
                    {
                        result.IsError          = true;
                        result.ExceptionMessage = rateplanInsertResult.ExceptionMessage;
                        return(result);
                    }
                    else if (rateplanInsertResult.Result > default(long))
                    {
                        result.Result.Id = rateCategoryViewModel.Id;
                    }
                }
            }
            return(result);
        }
コード例 #6
0
        public async Task TestUpdateRatePlans_Failed_ByGetListByPredicate_Error()
        {
            //Arrange
            var rateCategoryViewModel = new RateCategoryViewModel()
            {
                Id                   = 1,
                Name                 = "RC1",
                MarketId             = 2,
                CancellationPolicyId = 2,
                HotelMealId          = 2,
                IsActive             = true
            };
            var ratePlanViewModel = new RatePlansViewModel()
            {
                Id             = 1,
                RateCategoryId = 2,
                RoomId         = 322,
                ObjectState    = ObjectState.Modified
            };
            var ratePlansList = new List <RatePlansViewModel>();

            ratePlansList.Add(ratePlanViewModel);
            rateCategoryViewModel.RoomTypeList.AddRange(ratePlansList);
            rateCategoryViewModel.ObjectState = ObjectState.Modified;
            int rateCategoryId = 1;
            var rateCategory   = new RateCategory()
            {
                Id = 1, Name = "RateCategory1", IsActive = true, IsDeleted = false
            };
            var baseResult = new BaseResult <List <RateCategory> >()
            {
                Result = new List <RateCategory>()
                {
                    rateCategory
                }
            };
            var pred = new Func <RateCategory, bool>(x => x.Id == rateCategoryId && !x.IsDeleted);

            iRateCategoryLibrary.Setup(x => x.GetListByPredicate(It.Is <Func <RateCategory, bool> >(y => y.GetType() == pred.GetType()))).Returns(Task.FromResult(baseResult));
            iRateCategoryLibrary.Setup(x => x.UpdateEntityByDapper(It.IsAny <RateCategory>())).Returns(Task.FromResult(new BaseResult <bool>()
            {
                Result = true
            })).Verifiable();

            var ratePlanbaseResult = new BaseResult <List <RatePlans> >();

            ratePlanbaseResult.Result = null;
            var ratePlanPred = new Func <RatePlans, bool>(x => x.RateCategoryId == rateCategoryId && x.IsActive);

            iRatePlansLibrary.Setup(x => x.GetListByPredicate(It.Is <Func <RatePlans, bool> >(y => y.GetType() == ratePlanPred.GetType()))).Returns(Task.FromResult(ratePlanbaseResult));

            //Act
            Task <BaseResult <RateCategory> > actionResult = rateCategoryRepository.SaveAndUpdateRateCategory(rateCategoryViewModel, It.IsAny <string>());

            //Assert
            Assert.IsTrue(actionResult.Result.IsError);
            Assert.IsTrue(actionResult.Result.Message != null);
        }
コード例 #7
0
        /// <summary>
        /// Map Rate Category while updating record
        /// </summary>
        /// <param name="rateCategoryToMap"></param>
        /// <param name="rateCategoryDatabase"></param>
        /// <param name="userName"></param>
        /// <returns></returns>
        public static RateCategory AutoMapperRateCategory(RateCategoryViewModel rateCategoryToMap, RateCategory rateCategoryDatabase, string userName)
        {
            var rateCategoryMapped = AutoMapper.Mapper.Map <RateCategory>(rateCategoryToMap);

            rateCategoryMapped.CreatedBy   = rateCategoryDatabase.CreatedBy;
            rateCategoryMapped.CreatedDate = rateCategoryDatabase.CreatedDate;
            rateCategoryMapped.UpdatedBy   = userName;
            rateCategoryMapped.UpdatedDate = DateTime.Now.JakartaOffset();
            rateCategoryMapped.IsDeleted   = rateCategoryDatabase.IsDeleted;
            return(rateCategoryMapped);
        }
コード例 #8
0
        public void TestCreateRateCategory_Exception_InternalServerError()
        {
            RateCategoryViewModel rateCategoryViewModel = new RateCategoryViewModel();

            mockRatesCategoryRepository.Setup(a => a.SaveAndUpdateRateCategory(rateCategoryViewModel, It.IsAny <string>())).Returns(Task.FromResult(new BaseResult <RateCategory> {
                IsError = true, ExceptionMessage = Helper.Common.GetMockException()
            }));
            Task <IActionResult> actionResult = mockRatesCategoryController.CreateRateCategory(rateCategoryViewModel);

            Assert.IsTrue(actionResult != null);
            Assert.AreEqual(((Microsoft.AspNetCore.Mvc.ObjectResult)actionResult.Result).StatusCode, 500);
        }
コード例 #9
0
        /// <summary>
        /// Map Rate Category while inserting record
        /// </summary>
        /// <param name="source"></param>
        /// <param name="userName"></param>
        /// <returns></returns>
        public static RateCategory MapToRateCategoryModel(RateCategoryViewModel source, string userName)
        {
            var destination = AutoMapper.Mapper.Map <RateCategoryViewModel, RateCategory>(source);

            destination.CreatedBy   = userName;
            destination.UpdatedBy   = userName;
            destination.CreatedDate = DateTime.Now.JakartaOffset();
            destination.UpdatedDate = DateTime.Now.JakartaOffset();
            destination.IsActive    = true;
            destination.IsDeleted   = false;
            return(destination);
        }
コード例 #10
0
        public void TestCreateRateCategory_Failed_BadRequest()
        {
            //Arrange
            RateCategoryViewModel rateCategoryViewModel = null;
            //Act
            var result = mockRatesCategoryController.CreateRateCategory(rateCategoryViewModel);

            //Assert
            mockRatesCategoryRepository.Verify();
            Assert.IsTrue(result.Result is BadRequestObjectResult);
            Assert.AreEqual(((BadRequestObjectResult)result.Result).StatusCode, 400);
        }
コード例 #11
0
        /// <summary>
        /// Method to Update RateCategory
        /// </summary>
        /// <param name="rateCategoryViewModel"></param>
        /// <param name="userName"></param>
        /// <returns>RateCategory</returns>
        public async Task <BaseResult <RateCategory> > UpdateRateCategory(RateCategoryViewModel rateCategoryViewModel, string userName)
        {
            BaseResult <RateCategory> result = new BaseResult <RateCategory>();

            result.Result = new RateCategory();

            //Fetch rate category by id
            var rateCategoryResult = await iRateCategoryLibrary.GetListByPredicate(id => id.Id == rateCategoryViewModel.Id && !id.IsDeleted).ConfigureAwait(false);

            if (rateCategoryResult.Result != null && rateCategoryResult.Result.Any())
            {
                //Map Rate Category
                var updateRateCategory = RatesCategoryRequestMapper.AutoMapperRateCategory(rateCategoryViewModel, rateCategoryResult.Result.First(), userName);

                var updateResult = await iRateCategoryLibrary.UpdateEntityByDapper(updateRateCategory).ConfigureAwait(false);

                if (updateResult.IsError || updateResult.ExceptionMessage != null)
                {
                    result.IsError          = true;
                    result.ExceptionMessage = updateResult.ExceptionMessage;
                    return(result);
                }
                else if (updateResult.Result)//If rate category updated successfully update rateplans..
                {
                    foreach (var item in rateCategoryViewModel.RoomTypeList)
                    {
                        if (item.ObjectState == ObjectState.Modified)
                        {
                            result = await UpdateRatePlans(item, userName).ConfigureAwait(false);
                        }
                        else if (item.ObjectState == ObjectState.Added)//If new room is added
                        {
                            result = await AddRatePlans(rateCategoryViewModel, userName).ConfigureAwait(false);
                        }
                        else
                        {
                            result.Result.Id = rateCategoryViewModel.Id;
                        }
                    }
                }
            }
            else
            {
                result.IsError   = true;
                result.ErrorCode = (int)coreHelper.Constants.ErrorCodes.NoRateCategoryOfID;
                result.Message   = string.Format(coreHelper.Constants.ErrorMessage.NoRateCategoryOfID, rateCategoryViewModel.Id);
                return(result);
            }

            return(result);
        }
コード例 #12
0
        public async Task TestAddRateCategory_Pass_Success()
        {
            //Arrange
            var rateCategoryViewModel = new RateCategoryViewModel()
            {
                Id                   = 1,
                Name                 = "RC1",
                MarketId             = 2,
                CancellationPolicyId = 2,
                HotelMealId          = 2,
                IsActive             = true
            };
            var ratePlan = new RatePlansViewModel()
            {
                Id             = 1,
                RateCategoryId = 2,
                RoomId         = 322
            };
            var ratePlansList = new List <RatePlansViewModel>();

            ratePlansList.Add(ratePlan);
            rateCategoryViewModel.RoomTypeList.AddRange(ratePlansList);
            rateCategoryViewModel.ObjectState = ObjectState.Added;
            var rateCategory = new RateCategory()
            {
                Id = 1, Name = "RateCategory1", IsActive = true, IsDeleted = false
            };
            var baseResult = new BaseResult <List <RateCategory> >()
            {
                Result = new List <RateCategory>()
                {
                    rateCategory
                }
            };

            iRateCategoryLibrary.Setup(x => x.InsertEntity(It.IsAny <RateCategory>())).Returns(Task.FromResult(new BaseResult <long>()
            {
                Result = 2
            })).Verifiable();
            iRatePlansLibrary.Setup(x => x.InsertEntityList(It.IsAny <List <RatePlans> >())).Returns(Task.FromResult(new BaseResult <long>()
            {
                Result = 2
            })).Verifiable();
            //Act
            Task <BaseResult <RateCategory> > actionResult = rateCategoryRepository.SaveAndUpdateRateCategory(rateCategoryViewModel, It.IsAny <string>());

            //Assert
            Assert.IsTrue(actionResult.Result != null);
            Assert.IsTrue(actionResult.Result is BaseResult <RateCategory>);
        }
コード例 #13
0
        public void TestCreateRateCategory_EmptyResult_NoContentResponse()
        {
            RateCategoryViewModel rateCategoryViewModel = new RateCategoryViewModel();

            mockRatesCategoryRepository.Setup(a => a.SaveAndUpdateRateCategory(rateCategoryViewModel, It.IsAny <string>())).Returns(Task.FromResult(new BaseResult <RateCategory> {
                Result = new RateCategory()
            }));
            mockRatesCategoryRepository.Setup(a => a.SaveAndUpdateRateCategory(rateCategoryViewModel, It.IsAny <string>())).Returns(Task.FromResult(new BaseResult <RateCategory> {
                Result = null
            })).Verifiable();
            Task <IActionResult> actionResult = mockRatesCategoryController.CreateRateCategory(rateCategoryViewModel);

            Assert.IsTrue(actionResult != null);
            Assert.AreEqual(((Microsoft.AspNetCore.Mvc.StatusCodeResult)actionResult.Result).StatusCode, 204);
        }
コード例 #14
0
        /// <summary>
        /// Method to Add RateCategory
        /// </summary>
        /// <param name="rateCategoryViewModel"></param>
        /// <param name="userName"></param>
        /// <returns>RateCategory</returns>
        public async Task <BaseResult <RateCategory> > AddRateCategory(RateCategoryViewModel rateCategoryViewModel, string userName)
        {
            BaseResult <RateCategory> result = new BaseResult <RateCategory>();

            result.Result = new RateCategory();

            //Map Rate Category
            var rateCategoryResult = RatesCategoryRequestMapper.MapToRateCategoryModel(rateCategoryViewModel, userName);

            DynamicParameters paramCollection = new DynamicParameters();

            paramCollection.Add(Constants.StoredProcedureParameters.Name, rateCategoryResult.Name);
            paramCollection.Add(Constants.StoredProcedureParameters.HotelId, rateCategoryResult.HotelId);
            paramCollection.Add(Constants.StoredProcedureParameters.MarketId, rateCategoryResult.MarketId);
            paramCollection.Add(Constants.StoredProcedureParameters.ChildrenAndExtraBedPoliciesId, rateCategoryResult.ChildrenAndExtraBedPoliciesId);
            paramCollection.Add(Constants.StoredProcedureParameters.CancellationPolicyId, rateCategoryResult.CancellationPolicyId);
            paramCollection.Add(Constants.StoredProcedureParameters.RatePlanInfo, rateCategoryResult.RatePlanInfo);
            paramCollection.Add(Constants.StoredProcedureParameters.MealId, rateCategoryResult.MealId);
            paramCollection.Add(Constants.StoredProcedureParameters.IsStatic, rateCategoryResult.IsStatic);
            paramCollection.Add(Constants.StoredProcedureParameters.IsActive, rateCategoryResult.IsActive);
            paramCollection.Add(Constants.StoredProcedureParameters.IsDeleted, rateCategoryResult.IsDeleted);
            paramCollection.Add(Constants.StoredProcedureParameters.CreatedBy, rateCategoryResult.CreatedBy);
            paramCollection.Add(Constants.StoredProcedureParameters.CreatedDate, rateCategoryResult.CreatedDate);
            paramCollection.Add(Constants.StoredProcedureParameters.UpdatedBy, rateCategoryResult.UpdatedBy);
            paramCollection.Add(Constants.StoredProcedureParameters.UpdatedDate, rateCategoryResult.UpdatedDate);

            //Insert Rate Category first
            var insertResult = await iRateCategoryLibrary.ExecuteStoredProcedure(Constants.StoredProcedure.InsertRateCategory, paramCollection).ConfigureAwait(false);

            if (insertResult.IsError || insertResult.ExceptionMessage != null)
            {
                result.IsError          = true;
                result.ExceptionMessage = insertResult.ExceptionMessage;
                return(result);
            }
            else if (insertResult.Result.First().Id > default(long))
            {
                //Assign Rate Category Id
                rateCategoryViewModel.Id = insertResult.Result.First().Id;

                //Add Rate Plans
                result = await AddRatePlans(rateCategoryViewModel, userName).ConfigureAwait(false);
            }
            return(result);
        }
コード例 #15
0
        public async Task TestUpdateRateCategory_Failed_ByUpdateEntityByDapper_Error()
        {
            //Arrange
            var rateCategoryViewModel = new RateCategoryViewModel()
            {
                Id                   = 1,
                Name                 = "RC1",
                MarketId             = 2,
                CancellationPolicyId = 2,
                HotelMealId          = 2,
                IsActive             = true
            };

            rateCategoryViewModel.ObjectState = ObjectState.Modified;
            int rateCategoryId = 1;
            var rateCategory   = new RateCategory()
            {
                Id = 1, Name = "RateCategory1", IsActive = true, IsDeleted = false
            };
            var baseResult = new BaseResult <List <RateCategory> >()
            {
                Result = new List <RateCategory>()
                {
                    rateCategory
                }
            };
            var pred = new Func <RateCategory, bool>(x => x.Id == rateCategoryId && !x.IsDeleted);

            iRateCategoryLibrary.Setup(x => x.GetListByPredicate(It.Is <Func <RateCategory, bool> >(y => y.GetType() == pred.GetType()))).Returns(Task.FromResult(baseResult));
            iRateCategoryLibrary.Setup(x => x.UpdateEntityByDapper(It.IsAny <RateCategory>())).Returns(Task.FromResult(new BaseResult <bool>()
            {
                IsError          = true,
                ExceptionMessage = Helper.Common.GetMockException()
            })).Verifiable();

            //Act
            Task <BaseResult <RateCategory> > actionResult = rateCategoryRepository.SaveAndUpdateRateCategory(rateCategoryViewModel, It.IsAny <string>());

            //Assert
            Assert.IsTrue(actionResult.Result.IsError);
            Assert.IsTrue(actionResult.Result.ExceptionMessage != null);
        }
コード例 #16
0
        public async Task TestCreateRateCategory_Success_OkResponse()
        {
            //Arrange
            RateCategoryViewModel rateCategoryViewModel = new RateCategoryViewModel();

            RateCategory rateCategory = new RateCategory();

            mockRatesCategoryRepository.Setup(a => a.SaveAndUpdateRateCategory(rateCategoryViewModel, It.IsAny <string>())).Returns(Task.FromResult(new BaseResult <RateCategory> {
                Result = rateCategory
            }));
            //Act
            Task <IActionResult> actionResult = mockRatesCategoryController.CreateRateCategory(rateCategoryViewModel);
            var createRateCategoryResult      = (actionResult.Result as Microsoft.AspNetCore.Mvc.OkObjectResult).Value as BaseResult <RateCategory>;

            //Assert
            Assert.AreEqual(((Microsoft.AspNetCore.Mvc.ObjectResult)actionResult.Result).StatusCode, 200);
            Assert.IsNotNull(createRateCategoryResult);
            Assert.IsTrue(!createRateCategoryResult.IsError);
            Assert.IsTrue(createRateCategoryResult.Result != null);
        }
コード例 #17
0
        public async Task TestAddRateCategory_Failed_Error()
        {
            //Arrange
            var rateCategoryViewModel = new RateCategoryViewModel()
            {
                Id                   = 1,
                Name                 = "RC1",
                MarketId             = 2,
                CancellationPolicyId = 2,
                HotelMealId          = 2,
                IsActive             = true
            };

            rateCategoryViewModel.ObjectState = ObjectState.Added;
            var rateCategory = new RateCategory()
            {
                Id = 1, Name = "RateCategory1", IsActive = true, IsDeleted = false
            };
            var baseResult = new BaseResult <List <RateCategory> >()
            {
                Result = new List <RateCategory>()
                {
                    rateCategory
                }
            };

            iRateCategoryLibrary.Setup(x => x.InsertEntity(It.IsAny <RateCategory>())).Returns(Task.FromResult(new BaseResult <long>()
            {
                IsError          = true,
                ExceptionMessage = Helper.Common.GetMockException()
            })).Verifiable();

            //Act
            Task <BaseResult <RateCategory> > actionResult = rateCategoryRepository.SaveAndUpdateRateCategory(rateCategoryViewModel, It.IsAny <string>());

            //Assert
            Assert.IsTrue(actionResult.Result.IsError);
            Assert.IsTrue(actionResult.Result.ExceptionMessage != null);
        }
コード例 #18
0
        public async Task <IActionResult> CreateRateCategory([FromBody] RateCategoryViewModel rateCategoryViewModel)
        {
            string userName = base.LoggedInUserName;
            BaseResult <RateCategory> rateCategoryResult = new BaseResult <RateCategory>();

            if (rateCategoryViewModel == null)
            {
                rateCategoryResult.IsError = true;
                rateCategoryResult.Message = string.Format(coreHelper.Constants.ErrorMessage.EmptyModel);
                return(BadRequest(rateCategoryResult));
            }

            rateCategoryResult = await iRatesCategory.SaveAndUpdateRateCategory(rateCategoryViewModel, userName).ConfigureAwait(false);

            if (rateCategoryResult.IsError && rateCategoryResult.ExceptionMessage != null)
            {
                return(StatusCode(500, rateCategoryResult));
            }
            else if (rateCategoryResult.Result == null)
            {
                return(new NoContentResult());
            }
            return(Ok(rateCategoryResult));
        }
コード例 #19
0
        /// <summary>
        /// Method to Add RatePlan
        /// </summary>
        /// <param name="rateCategoryViewModel"></param>
        /// <param name="userName"></param>
        /// <returns></returns>
        public async Task <BaseResult <RateCategory> > AddRatePlans(RateCategoryViewModel rateCategoryViewModel, string userName)
        {
            BaseResult <RateCategory> result = new BaseResult <RateCategory>();

            result.Result = new RateCategory();

            //Map RatePlans
            var ratePlansResult = RatesCategoryRequestMapper.MapToRatePlansModel(rateCategoryViewModel, userName);

            //Insert RatePlans
            var rateplanInsertResult = await iRatePlansLibrary.InsertEntityList(ratePlansResult).ConfigureAwait(false);

            if (rateplanInsertResult.IsError || rateplanInsertResult.ExceptionMessage != null)
            {
                result.IsError          = true;
                result.ExceptionMessage = rateplanInsertResult.ExceptionMessage;
                return(result);
            }
            else if (rateplanInsertResult.Result > default(long))
            {
                result.Result.Id = rateCategoryViewModel.Id;
            }
            return(result);
        }
コード例 #20
0
        public async Task TestAddRatePlans_Failed_Error()
        {
            //Arrange
            var rateCategoryViewModel = new RateCategoryViewModel()
            {
                Id                   = 1,
                Name                 = "RC1",
                MarketId             = 2,
                CancellationPolicyId = 2,
                HotelMealId          = 2,
                IsActive             = true
            };
            var ratePlanViewModel = new RatePlansViewModel()
            {
                Id             = 1,
                RateCategoryId = 2,
                RoomId         = 322
            };
            var ratePlansViewModelList = new List <RatePlansViewModel>();

            ratePlansViewModelList.Add(ratePlanViewModel);
            rateCategoryViewModel.RoomTypeList.AddRange(ratePlansViewModelList);
            rateCategoryViewModel.ObjectState = ObjectState.Added;
            var rateCategory = new RateCategory()
            {
                Id = 1, Name = "RateCategory1", IsActive = true, IsDeleted = false
            };
            var baseResult = new BaseResult <List <RateCategory> >()
            {
                Result = new List <RateCategory>()
                {
                    rateCategory
                }
            };

            iRateCategoryLibrary.Setup(x => x.InsertEntity(It.IsAny <RateCategory>())).Returns(Task.FromResult(new BaseResult <long>()
            {
                Result = 2
            })).Verifiable();

            var ratePlan = new RatePlans()
            {
                Id             = 1,
                RateCategoryId = 2,
                RoomId         = 322
            };
            int rateCategoryId     = 2;
            var ratePlanbaseResult = new BaseResult <List <RatePlans> >()
            {
                Result = new List <RatePlans>()
                {
                    ratePlan
                }
            };
            var pred = new Func <RatePlans, bool>(x => x.RateCategoryId == rateCategoryId && x.IsActive);

            iRatePlansLibrary.Setup(x => x.GetListByPredicate(It.Is <Func <RatePlans, bool> >(y => y.GetType() == pred.GetType()))).Returns(Task.FromResult(ratePlanbaseResult));
            iRatePlansLibrary.Setup(x => x.InsertEntityList(It.IsAny <List <RatePlans> >())).Returns(Task.FromResult(new BaseResult <long>()
            {
                IsError          = true,
                ExceptionMessage = Helper.Common.GetMockException()
            })).Verifiable();

            //Act
            Task <BaseResult <RateCategory> > actionResult = rateCategoryRepository.SaveAndUpdateRateCategory(rateCategoryViewModel, It.IsAny <string>());

            //Assert
            Assert.IsTrue(actionResult.Result.IsError);
            Assert.IsTrue(actionResult.Result.ExceptionMessage != null);
        }