/// <summary> /// Maps view model of hotelmeal to hotelmeal model /// </summary> /// <param name="hotelMealToMap"></param> /// <param name="hotelMealDatabase"></param> /// <param name="userName"></param> /// <returns>Message</returns> public static HotelMeal AutoMapperHotelMeal(HotelMeal hotelMealToMap, HotelMeal hotelMealDatabase, string userName) { var hotelMealMapped = AutoMapper.Mapper.Map <HotelMeal>(hotelMealToMap); ResolveRemainingParamtersHotelMeal(hotelMealMapped, hotelMealDatabase, userName); return(hotelMealMapped); }
public async Task TestGetHotelMeal_positive_Predicate_sample() { //Arrange int hotelId = 5; var hotelMeal = new HotelMeal() { Id = 1, HotelId = 5, MealId = 1, Price = 1000, CurrencyId = 7, IsDeleted = false }; var baseResult = new BaseResult <List <HotelMeal> >() { Result = new List <HotelMeal>() { hotelMeal } }; var pred = new Func <HotelMeal, bool>(x => x.HotelId == hotelMeal.HotelId && !x.IsDeleted); iHotelMealConnectionLibrary.Setup(x => x.GetListByPredicate(It.Is <Func <HotelMeal, bool> >(y => y.GetType() == pred.GetType()))).Returns(Task.FromResult(baseResult)); //Act Task <BaseResult <List <HotelMeal> > > result = mealPlanRepository.GetHotelMeal(hotelId); //Assert Assert.IsTrue(result.Result != null); Assert.IsTrue(result.Result is BaseResult <List <HotelMeal> >); }
/// <summary> /// Return the mapped HotelMeal and HotelMealType model /// </summary> /// <param name="hotelAssociateMealPlanViewModel"></param> /// <returns></returns> public static void MapHotelMealAndHotelMealType(ref HotelMeal hotelMeal, ref List <HotelMealType> hotelMealTypeList, MealPlanViewModel mealPlanViewModel, string userName) { hotelMeal = new HotelMeal(); hotelMeal.HotelId = mealPlanViewModel.HotelId; hotelMeal.MealId = mealPlanViewModel.MealId; hotelMeal.Code = "Meal_" + hotelMeal.HotelId + "_" + hotelMeal.MealId; hotelMeal.Price = mealPlanViewModel.MealPlanOptions.Price; hotelMeal.CurrencyId = (mealPlanViewModel.MealPlanOptions.CurrencyId == null)? 0: mealPlanViewModel.MealPlanOptions.CurrencyId.Value; hotelMeal.CreatedBy = userName; hotelMeal.UpdatedBy = userName; if (mealPlanViewModel.IsSelected) { hotelMeal.IsDeleted = false; } else { hotelMeal.IsDeleted = true; } hotelMealTypeList = new List <HotelMealType>(); foreach (var cuisine in mealPlanViewModel.MealPlanOptions.CuisineOptions) { HotelMealType model = new HotelMealType(); model.HotelId = mealPlanViewModel.HotelId; model.MealId = mealPlanViewModel.MealId; model.CuisineTypeId = cuisine.Id; model.Code = "MealType_" + hotelMeal.HotelId + "_" + hotelMeal.MealId + "_" + model.CuisineTypeId; model.Name = cuisine.Cusine; model.NameItemId = 1; model.CreatedBy = userName; model.UpdatedBy = userName; model.IsActive = true; if (cuisine.IsSelected) { model.IsDeleted = false; } else { model.IsDeleted = true; } hotelMealTypeList.Add(model); } }
/// <summary> /// Resolve remaining parameters /// </summary> /// <param name="destination"></param> /// <param name="source"></param> public static void ResolveRemainingParamtersHotelMeal(HotelMeal destination, HotelMeal source, string userName) { destination.Id = source.Id; destination.CreatedBy = source.CreatedBy; destination.UpdatedBy = userName; }
public async Task TestSaveAndUpdateHotelMeal_Update_ByHotelMealPredicate_Failed_Error() { //Arrange BaseResult <HotelMealType> baseResult = new BaseResult <HotelMealType>(); baseResult.Result = new HotelMealType() { }; List <MealPlanViewModel> mealPlanViewModelList = new List <MealPlanViewModel>(); List <CuisineTypeViewModel> cuisineTypeViewModelList = new List <CuisineTypeViewModel>(); CuisineTypeViewModel cuisine1 = new CuisineTypeViewModel() { Id = 1, Cusine = "Indian", IsSelected = true, ObjectState = ObjectState.Added }; CuisineTypeViewModel cuisine2 = new CuisineTypeViewModel() { Id = 2, Cusine = "Asian", IsSelected = true, ObjectState = ObjectState.Added }; cuisineTypeViewModelList.Add(cuisine1); cuisineTypeViewModelList.Add(cuisine2); MealPlanViewModel mealPlanViewModel = new MealPlanViewModel() { HotelId = 1103, MealId = 1, IsSelected = true, ObjectState = ObjectState.Modified, MealPlanOptions = new MealOptionViewModel() { CurrencyId = 1, Price = 1000, ObjectState = ObjectState.Modified, } }; mealPlanViewModel.MealPlanOptions.CuisineOptions.AddRange(cuisineTypeViewModelList); mealPlanViewModelList.Add(mealPlanViewModel); var hotelMeal = new HotelMeal() { }; var hotelMealbaseResult = new BaseResult <List <HotelMeal> >() { Result = new List <HotelMeal>() { hotelMeal } }; var pred = new Func <HotelMeal, bool>(x => x.HotelId == hotelMeal.HotelId && !x.IsDeleted); iHotelMealConnectionLibrary.Setup(x => x.GetListByPredicate(It.Is <Func <HotelMeal, bool> >(y => y.GetType() == pred.GetType()))).Returns(Task.FromResult(hotelMealbaseResult)); //Act Task <BaseResult <HotelMealType> > actionResult = mealPlanRepository.SaveAndUpdateHotelMealAndMealType(mealPlanViewModelList, It.IsAny <string>()); //Assert Assert.IsTrue(actionResult.Result.IsError); Assert.IsTrue(actionResult.Result.ExceptionMessage != null); }
/// <summary> /// Add/Update HotelMeal and HotelMealType /// </summary> /// <param name="mealPlanViewModelList"></param> /// <param name="userName"></param> /// <returns></returns> public async Task <BaseResult <HotelMealType> > SaveAndUpdateHotelMealAndMealType(List <MealPlanViewModel> mealPlanViewModelList, string userName) { BaseResult <HotelMealType> result = new BaseResult <HotelMealType>(); result.Result = new HotelMealType(); HotelMeal hotelMealRequest = null; List <HotelMealType> hotelMealTypeRequest = null; foreach (var mealplan in mealPlanViewModelList) { MealPlanRequestMapper.MapHotelMealAndHotelMealType(ref hotelMealRequest, ref hotelMealTypeRequest, mealplan, userName); //To Add/Update HotelMeal if (mealplan.ObjectState == ObjectState.Added) { var insertResult = await iHotelMealConnectionLibrary.InsertEntity(hotelMealRequest).ConfigureAwait(false); if (insertResult.IsError || insertResult.ExceptionMessage != null) { result.IsError = true; result.ExceptionMessage = insertResult.ExceptionMessage; return(result); } } else if (mealplan.ObjectState == ObjectState.Modified || mealplan.ObjectState == ObjectState.Deleted || mealplan.MealPlanOptions.ObjectState == ObjectState.Modified) { var hotelMealResult = await iHotelMealConnectionLibrary.GetListByPredicate(id => id.HotelId == hotelMealRequest.HotelId && id.MealId == hotelMealRequest.MealId && !id.IsDeleted).ConfigureAwait(false); if (hotelMealResult.Result.Count > 0 && hotelMealResult != null) { var updatedHotelMeal = MealPlanRequestMapper.AutoMapperHotelMeal(hotelMealRequest, hotelMealResult.Result[0], userName); var updateResult = await iHotelMealConnectionLibrary.UpdateEntityByDapper(updatedHotelMeal).ConfigureAwait(false); if (updateResult.IsError || updateResult.ExceptionMessage != null) { result.IsError = true; result.ExceptionMessage = updateResult.ExceptionMessage; return(result); } } else { result.IsError = true; result.ErrorCode = (int)coreHelper.Constants.ErrorCodes.NoHotelMealOfID; result.Message = string.Format(coreHelper.Constants.ErrorMessage.NoHotelMealOfID, hotelMealRequest.Id); return(result); } } //To Add/Update HotelMealType if (hotelMealTypeRequest != null) { foreach (var hotelMealType in hotelMealTypeRequest) { foreach (var cuisine in mealplan.MealPlanOptions.CuisineOptions) { if (hotelMealType.CuisineTypeId == cuisine.Id) { if (cuisine.ObjectState == ObjectState.Added) { var insertResult = await iHotelMealTypeConnectionLibrary.InsertEntity(hotelMealType).ConfigureAwait(false); if (insertResult.IsError || insertResult.ExceptionMessage != null) { result.IsError = true; result.ExceptionMessage = insertResult.ExceptionMessage; return(result); } result.Result.Id = (int)insertResult.Result; } else if (cuisine.ObjectState == ObjectState.Deleted) { var hotelMealTypeResult = await iHotelMealTypeConnectionLibrary.GetListByPredicate(x => x.CuisineTypeId == hotelMealType.CuisineTypeId && x.MealId == hotelMealType.MealId && x.HotelId == hotelMealType.HotelId && x.IsActive && !x.IsDeleted).ConfigureAwait(false); if (hotelMealTypeResult.Result.Count > 0 && hotelMealTypeResult != null) { var updatedHotelMealType = MealPlanRequestMapper.AutoMapperHotelMealType(hotelMealType, hotelMealTypeResult.Result[0], userName); var updateResult = await iHotelMealTypeConnectionLibrary.UpdateEntityByDapper(hotelMealType).ConfigureAwait(false); if (updateResult.IsError || updateResult.ExceptionMessage != null) { result.IsError = true; result.ExceptionMessage = updateResult.ExceptionMessage; return(result); } else if (updateResult.Result) { result.Result.Id = hotelMealType.Id; } } } } } } } } return(result); }