Пример #1
0
        /// <summary>
        /// Maps the HotelRooomViewModel to room
        /// </summary>
        /// <param name = "request" ></ param >
        /// < param name="roomFromDb"></param>
        /// <param name = "userName" ></ param >
        /// < returns ></ returns >
        public static Room AutoMapperRoom(HotelRoomTypeViewModel request, Room roomFromDb, string userName)
        {
            var roomMapped = AutoMapper.Mapper.Map <Room>(request);

            ResolveRemainingRoomParamters(roomMapped, roomFromDb, userName, (int)request.RoomBedOptions.OccupancyId);
            return(roomMapped);
        }
Пример #2
0
        /// <summary>
        /// Parameters for CreateRoomType Stored Procedure
        /// </summary>
        /// <param name="request"></param>
        /// <param name="occupancyId"></param>
        /// <returns></returns>
        public static DynamicParameters CreateRoomTypeParameters(HotelRoomTypeViewModel request, string userName)
        {
            var isTwin = true;

            if (request.RoomBedOptions.RoomBedList.Any(x => x.BedId == (int)BedTypes.Queen || x.BedId == (int)BedTypes.King))
            {
                isTwin = false;
            }
            DynamicParameters paramCollection = new DynamicParameters();

            paramCollection.Add(Constants.StoredProcedureParameters.IsTwin, isTwin);
            paramCollection.Add(Constants.StoredProcedureParameters.HotelId, request.HotelId);
            paramCollection.Add(Constants.StoredProcedureParameters.RoomTypeId, request.RoomTypeId);
            paramCollection.Add(Constants.StoredProcedureParameters.RoomName, request.Name);
            paramCollection.Add(Constants.StoredProcedureParameters.RoomSize, request.Size);
            paramCollection.Add(Constants.StoredProcedureParameters.SizeMeasureId, request.SizeMeasureId);
            paramCollection.Add(Constants.StoredProcedureParameters.NoOfRooms, request.NoOfRooms);
            paramCollection.Add(Constants.StoredProcedureParameters.IsSmoking, request.IsSmoking);
            paramCollection.Add(Constants.StoredProcedureParameters.IsFreeSale, request.IsFreeSale);
            paramCollection.Add(Constants.StoredProcedureParameters.RoomDescription, request.Description);
            paramCollection.Add(Constants.StoredProcedureParameters.OccupancyId, request.RoomBedOptions.OccupancyId);
            paramCollection.Add(Constants.StoredProcedureParameters.IsActive, request.IsActive);
            paramCollection.Add(Constants.StoredProcedureParameters.CreatedBy, userName);
            paramCollection.Add(Constants.StoredProcedureParameters.UpdatedBy, userName);
            return(paramCollection);
        }
Пример #3
0
        public void TestCreateRoomType_RoomSavePassed_Success()
        {
            //Arrange
            var userName      = "******";
            var id            = 1;
            var roombedObject = new RoomBedListViewModel()
            {
                ID          = 0,
                BedId       = id,
                NoOfBeds    = 2,
                ObjectState = ObjectState.Added
            };
            var roomBedOptionObject = new RoomBedOptionViewModel()
            {
                OccupancyId = id,
                ObjectState = ObjectState.Added
            };

            roomBedOptionObject.RoomBedList.Add(roombedObject);
            var hotelRoomObject = new HotelRoomTypeViewModel()
            {
                IsActive      = true,
                HotelId       = 1,
                IsFreeSale    = true,
                IsSmoking     = true,
                NoOfRooms     = 2,
                Description   = "Description",
                Name          = "Name",
                Size          = 5,
                RoomTypeId    = id,
                SizeMeasureId = id,
                ObjectState   = ObjectState.Added
            };

            hotelRoomObject.RoomBedOptions = roomBedOptionObject;
            var room = new Room()
            {
                Id = 1
            };
            var baseResult = new BaseResult <List <Room> >()
            {
                Result = new List <Room>()
                {
                    room
                }
            };

            iRoomLibrary.Setup(a => a.ExecuteStoredProcedure(It.IsAny <string>(), It.IsAny <DynamicParameters>())).Returns(Task.FromResult(baseResult));
            //Act
            var result = roomRepository.SaveAndUpdateRoom(hotelRoomObject, userName);

            //Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Result is BaseResult <List <Room> >);
            Assert.IsTrue(result.Result.Result.Any(x => x.Id == id));
        }
Пример #4
0
        public void TestCreateRoomType_SaveRoom_Failed()
        {
            //Arrange
            var userName      = "******";
            var id            = 1;
            var roombedObject = new RoomBedListViewModel()
            {
                ID          = 0,
                BedId       = id,
                NoOfBeds    = 2,
                ObjectState = ObjectState.Added
            };
            var roomBedOptionObject = new RoomBedOptionViewModel()
            {
                OccupancyId = id,
                ObjectState = ObjectState.Added
            };

            roomBedOptionObject.RoomBedList.Add(roombedObject);
            var hotelRoomObject = new HotelRoomTypeViewModel()
            {
                IsActive      = true,
                HotelId       = 1,
                IsFreeSale    = true,
                IsSmoking     = true,
                NoOfRooms     = 2,
                Description   = "Description",
                Name          = "Name",
                Size          = 5,
                RoomTypeId    = id,
                SizeMeasureId = id,
                ObjectState   = ObjectState.Added
            };

            hotelRoomObject.RoomBedOptions = roomBedOptionObject;
            var room = new Room()
            {
                Id = 1
            };
            var baseResult = new BaseResult <List <Room> >()
            {
                IsError = true, ExceptionMessage = Helper.Common.GetMockException()
            };

            iRoomLibrary.Setup(a => a.ExecuteStoredProcedure(It.IsAny <string>(), It.IsAny <DynamicParameters>())).Returns(Task.FromResult(baseResult));
            //Act
            var result = roomRepository.SaveAndUpdateRoom(hotelRoomObject, userName);

            //Assert
            iRoomLibrary.Verify();
            Assert.IsTrue(result.Result.IsError);
            Assert.IsTrue(result.Result.ExceptionMessage != null);
        }
Пример #5
0
        public async Task TestCreateRoomType_Failed_Error()
        {
            //Arrange

            var id            = 1;
            var roombedObject = new RoomBedListViewModel()
            {
                ID          = 0,
                BedId       = id,
                NoOfBeds    = 2,
                ObjectState = ObjectState.Added
            };
            var roomBedOptionObject = new RoomBedOptionViewModel()
            {
                OccupancyId = id,
                ObjectState = ObjectState.Added
            };

            roomBedOptionObject.RoomBedList.Add(roombedObject);
            var hotelRoomObject = new HotelRoomTypeViewModel()
            {
                IsActive      = true,
                HotelId       = 1,
                IsFreeSale    = true,
                IsSmoking     = true,
                NoOfRooms     = 4,
                Description   = "Description",
                Name          = "Name",
                Size          = 5,
                RoomTypeId    = id,
                SizeMeasureId = id,
                ObjectState   = ObjectState.Added
            };

            hotelRoomObject.RoomBedOptions = roomBedOptionObject;
            mockRoomRepository.Setup(a => a.SaveAndUpdateRoom(It.IsAny <HotelRoomTypeViewModel>(), It.IsAny <string>())).Returns(Task.FromResult(new BaseResult <List <Room> >()
            {
                IsError          = true,
                ExceptionMessage = Helper.Common.GetMockException()
            })).Verifiable();
            mockRoomRepository.Setup(a => a.SaveAndUpdateRoomBedRelation(It.IsAny <HotelRoomTypeViewModel>(), It.IsAny <int>(), It.IsAny <string>())).Returns(Task.FromResult(new BaseResult <RoomBedRelation>()
            {
                IsError          = true,
                ExceptionMessage = Helper.Common.GetMockException()
            })).Verifiable();
            //  mockRoomRepository.Setup(a => a.GetOccupancy()).Returns(Task.FromResult(new BaseResult<List<Occupancy>>() { Result = new List<Occupancy> { new Occupancy { Id = 1, NoOfGuest = 2, IsActive = true } } }));
            var result = await mockRoomController.CreateRoomType(hotelRoomObject);

            //Assert
            //mockRoomRepository.Verify();
            Assert.AreEqual(((Microsoft.AspNetCore.Mvc.ObjectResult)result).StatusCode, 500);
        }
Пример #6
0
        public void TestSaveAndUpdateRoomBedRelation_SaveRoom_Failed()
        {
            //Arrange
            var userName      = "******";
            var id            = 1;
            var roombedObject = new RoomBedListViewModel()
            {
                ID          = 0,
                BedId       = id,
                NoOfBeds    = 2,
                ObjectState = ObjectState.Added
            };
            var roomBedOptionObject = new RoomBedOptionViewModel()
            {
                OccupancyId = id,
                ObjectState = ObjectState.Added
            };

            roomBedOptionObject.RoomBedList.Add(roombedObject);
            var hotelRoomObject = new HotelRoomTypeViewModel()
            {
                IsActive      = true,
                HotelId       = 1,
                IsFreeSale    = true,
                IsSmoking     = true,
                NoOfRooms     = 2,
                Description   = "Description",
                Name          = "Name",
                Size          = 5,
                RoomTypeId    = id,
                SizeMeasureId = id,
                ObjectState   = ObjectState.Added
            };

            hotelRoomObject.RoomBedOptions = roomBedOptionObject;
            iRoomBedRelationLibrary.Setup(a => a.InsertEntityList(It.IsAny <List <RoomBedRelation> >())).Returns(Task.FromResult(new BaseResult <long> {
                IsError = true, ExceptionMessage = Helper.Common.GetMockException()
            }));
            //Act
            var result = roomRepository.SaveAndUpdateRoomBedRelation(hotelRoomObject, id, userName);

            //Assert
            iRoomLibrary.Verify();
            Assert.IsTrue(result.Result.IsError);
            Assert.IsTrue(result.Result.ExceptionMessage != null);
        }
Пример #7
0
        public void TestSaveAndUpdateRoomBedRelation_SavePassed_Success()
        {
            //Arrange
            var userName      = "******";
            var id            = 1;
            var roombedObject = new RoomBedListViewModel()
            {
                ID          = 0,
                BedId       = id,
                NoOfBeds    = 2,
                ObjectState = ObjectState.Added
            };
            var roomBedOptionObject = new RoomBedOptionViewModel()
            {
                OccupancyId = id,
                ObjectState = ObjectState.Added
            };

            roomBedOptionObject.RoomBedList.Add(roombedObject);
            var hotelRoomObject = new HotelRoomTypeViewModel()
            {
                IsActive      = true,
                HotelId       = 1,
                IsFreeSale    = true,
                IsSmoking     = true,
                NoOfRooms     = 2,
                Description   = "Description",
                Name          = "Name",
                Size          = 5,
                RoomTypeId    = id,
                SizeMeasureId = id,
                ObjectState   = ObjectState.Added
            };

            hotelRoomObject.RoomBedOptions = roomBedOptionObject;
            iRoomBedRelationLibrary.Setup(a => a.InsertEntityList(It.IsAny <List <RoomBedRelation> >())).Returns(Task.FromResult(new BaseResult <long> {
                Result = id
            }));
            //Act
            var result = roomRepository.SaveAndUpdateRoomBedRelation(hotelRoomObject, id, userName);

            //Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Result is BaseResult <RoomBedRelation>);
            Assert.IsTrue(result.Result.Result.ID == id);
        }
Пример #8
0
        /// <summary>
        /// maps the model to RoomBedRelation Entity
        /// </summary>
        /// <param name = "request" ></ param >
        /// < param name="hotelRoomId"></param>
        /// <returns></returns>
        public static BaseResult <RoomBedRelation> MapRoomBedRelationEntity(HotelRoomTypeViewModel request, RoomBedListViewModel item, int hotelRoomId, string userName)
        {
            BaseResult <RoomBedRelation> responseModel = new BaseResult <RoomBedRelation>();
            RoomBedRelation roomBedRelation            = new RoomBedRelation()
            {
                HotelId     = (int)request.HotelId,
                BedId       = (int)item.BedId,
                NoOfBeds    = (int)item.NoOfBeds,
                HotelRoomId = hotelRoomId,
                IsDeleted   = false,
                UpdatedBy   = userName,
                CreatedBy   = userName
            };

            responseModel.Result = roomBedRelation;
            return(responseModel);
        }
Пример #9
0
        public async Task TestCreateRoomType_Failed_BadRequest()
        {
            //Arrange

            var id            = 1;
            var roombedObject = new RoomBedListViewModel()
            {
                ID          = 0,
                BedId       = id,
                NoOfBeds    = 2,
                ObjectState = ObjectState.Added
            };
            var roomBedOptionObject = new RoomBedOptionViewModel()
            {
                OccupancyId = id,
                ObjectState = ObjectState.Added
            };

            roomBedOptionObject.RoomBedList.Add(roombedObject);
            var hotelRoomObject = new HotelRoomTypeViewModel()
            {
                IsActive        = true,
                HotelId         = 1,
                IsFreeSale      = true,
                IsSmoking       = true,
                NoOfRooms       = 2,
                Description     = "Description",
                Name            = "Name",
                Size            = 5,
                RoomTypeId      = id,
                SizeMeasureId   = id,
                ObjectState     = ObjectState.Added,
                NoOfDoubleRooms = 0,
                NoOfTwinRooms   = 0,
            };

            hotelRoomObject.RoomBedOptions = roomBedOptionObject;
            //Act
            var result = await mockRoomController.CreateRoomType(hotelRoomObject);

            //Assert
            mockRoomRepository.Verify();
            Assert.IsTrue(result is BadRequestObjectResult);
            Assert.AreEqual(((BadRequestObjectResult)result).StatusCode, 400);
        }
Пример #10
0
        public static DynamicParameters UpdateRoomTypeParameters(HotelRoomTypeViewModel request, string userName)
        {
            DynamicParameters paramCollection = new DynamicParameters();

            paramCollection.Add(Constants.StoredProcedureParameters.RoomId, request.RoomId);
            paramCollection.Add(Constants.StoredProcedureParameters.RoomTypeId, request.RoomTypeId);
            paramCollection.Add(Constants.StoredProcedureParameters.RoomName, request.Name);
            paramCollection.Add(Constants.StoredProcedureParameters.RoomSize, request.Size);
            paramCollection.Add(Constants.StoredProcedureParameters.SizeMeasureId, request.SizeMeasureId);
            paramCollection.Add(Constants.StoredProcedureParameters.NoOfRooms, request.NoOfRooms);
            paramCollection.Add(Constants.StoredProcedureParameters.IsSmoking, request.IsSmoking);
            paramCollection.Add(Constants.StoredProcedureParameters.IsFreeSale, request.IsFreeSale);
            paramCollection.Add(Constants.StoredProcedureParameters.RoomDescription, request.Description);
            paramCollection.Add(Constants.StoredProcedureParameters.OccupancyId, request.RoomBedOptions.OccupancyId);
            paramCollection.Add(Constants.StoredProcedureParameters.IsActive, request.IsActive);
            paramCollection.Add(Constants.StoredProcedureParameters.UpdatedBy, userName);
            paramCollection.Add(Constants.StoredProcedureParameters.UpdatedDate, Common.JakartaOffset(DateTime.Now));
            return(paramCollection);
        }
Пример #11
0
        /// <summary>
        /// maps the model to RoomBedRelation Entity
        /// </summary>
        /// <param name="request"></param>
        /// <param name="hotelRoomId"></param>
        /// <returns></returns>
        public static BaseResult <List <RoomBedRelation> > CreateRoomBedRelation(HotelRoomTypeViewModel request, int hotelRoomId, string userName)
        {
            BaseResult <List <RoomBedRelation> > responseModel = new BaseResult <List <RoomBedRelation> >();
            var list = new List <RoomBedRelation>();

            foreach (var item in request.RoomBedOptions.RoomBedList)
            {
                RoomBedRelation roomBedRelation = new RoomBedRelation()
                {
                    HotelId     = (int)request.HotelId,
                    BedId       = (int)item.BedId,
                    NoOfBeds    = (int)item.NoOfBeds,
                    HotelRoomId = hotelRoomId,
                    IsDeleted   = false,
                    UpdatedBy   = userName,
                    CreatedBy   = userName
                };
                list.Add(roomBedRelation);
            }
            responseModel.Result = list;
            return(responseModel);
        }
Пример #12
0
        /// <summary>
        /// Maps to Hotelroom view model
        /// </summary>
        /// <param name="room"></param>
        /// <param name="roomBed"></param>
        /// <returns>BaseResult<HotelRoomTypeViewModel></returns>
        public static BaseResult <HotelRoomTypeViewModel> MapRoomDetails(Room room, List <RoomBedRelation> roomBed)
        {
            BaseResult <HotelRoomTypeViewModel> model       = new BaseResult <HotelRoomTypeViewModel>();
            List <RoomBedListViewModel>         roomBedList = new List <RoomBedListViewModel>();
            HotelRoomTypeViewModel roomModel = new HotelRoomTypeViewModel
            {
                RoomId        = room.Id,
                HotelId       = room.HotelId,
                IsActive      = room.IsActive,
                IsFreeSale    = room.IsFreeSale,
                IsSmoking     = room.IsSmoking,
                NoOfRooms     = room.NoOfRooms,
                Description   = room.Description,
                Name          = room.Name,
                Size          = room.Size,
                RoomTypeId    = room.RoomTypeId,
                SizeMeasureId = room.SizeMeasureId,
            };

            foreach (var item in roomBed)
            {
                RoomBedListViewModel roomBedModel = new RoomBedListViewModel
                {
                    ID       = item.ID,
                    BedId    = item.BedId,
                    NoOfBeds = item.NoOfBeds
                };
                roomBedList.Add(roomBedModel);
            }
            RoomBedOptionViewModel roomBedOptionModel = new RoomBedOptionViewModel
            {
                OccupancyId = room.NoOfGuests,
            };

            roomBedOptionModel.RoomBedList = roomBedList;
            roomModel.RoomBedOptions       = roomBedOptionModel;
            model.Result = roomModel;
            return(model);
        }
Пример #13
0
        public async Task <IActionResult> CreateRoomType([FromBody] HotelRoomTypeViewModel request)
        {
            BaseResult <List <Room> >    createRoomTypeResponse        = new BaseResult <List <Room> >();
            BaseResult <RoomBedRelation> createRoomBedRelationResponse = new BaseResult <RoomBedRelation>();

            if (request != null)
            {
                createRoomTypeResponse = await iRoom.SaveAndUpdateRoom(request, base.LoggedInUserName);

                if (createRoomTypeResponse.Message != null)
                {
                    return(BadRequest(createRoomTypeResponse));
                }
                if (createRoomTypeResponse.IsError && createRoomTypeResponse.ExceptionMessage != null)
                {
                    return(StatusCode(500, createRoomTypeResponse));
                }
                createRoomBedRelationResponse = await iRoom.SaveAndUpdateRoomBedRelation(request, createRoomTypeResponse.Result[0].Id, base.LoggedInUserName);

                if (createRoomBedRelationResponse.Message != null)
                {
                    return(BadRequest(createRoomBedRelationResponse));
                }
                if (createRoomBedRelationResponse.IsError && createRoomBedRelationResponse.ExceptionMessage != null)
                {
                    return(StatusCode(500, createRoomBedRelationResponse));
                }
                return(Ok(createRoomTypeResponse)); //200
            }
            else
            {
                createRoomTypeResponse.IsError = true;
                createRoomTypeResponse.Message = coreHelper.Constants.ErrorMessage.EmptyModel;
                return(BadRequest(createRoomTypeResponse));
            }
        }
Пример #14
0
        /// <summary>
        /// Creates Room bed Relation or updates the existing one
        /// </summary>
        /// <param name="request"></param>
        /// <param name="hotelRoomId"></param>
        /// <param name="userName"></param>
        /// <returns>Task<BaseResult<RoomBedRelation>></returns>
        public async Task <BaseResult <RoomBedRelation> > SaveAndUpdateRoomBedRelation(HotelRoomTypeViewModel request, int hotelRoomId, string userName)
        {
            BaseResult <RoomBedRelation> result = new BaseResult <RoomBedRelation>();

            result.Result = new RoomBedRelation();
            var update = false;

            if (request.RoomBedOptions.ObjectState == ObjectState.Added)
            {
                var list         = RoomRequestMapper.CreateRoomBedRelation(request, hotelRoomId, userName);
                var insertResult = await iRoomBedRelationLibrary.InsertEntityList(list.Result).ConfigureAwait(false);

                if (insertResult.IsError && insertResult.ExceptionMessage != null)
                {
                    result.IsError          = insertResult.IsError;
                    result.ExceptionMessage = insertResult.ExceptionMessage;
                    return(result);
                }
                result.Result.ID = (int)insertResult.Result;
                return(result);
            }
            if (request.RoomBedOptions.ObjectState == ObjectState.Modified || request.RoomBedOptions.ObjectState == ObjectState.Unchanged)
            {
                foreach (var item in request.RoomBedOptions.RoomBedList)
                {
                    if (item.ObjectState == ObjectState.Modified && item.ID > 0)
                    {
                        var oldItem = await iRoomBedRelationLibrary.GetListByPredicate(x => x.ID == item.ID && !x.IsDeleted);

                        if (result.IsError || oldItem.ExceptionMessage != null)
                        {
                            result.IsError          = true;
                            result.ExceptionMessage = oldItem.ExceptionMessage;
                            return(result);
                        }
                        if (oldItem != null && oldItem.Result.Any())
                        {
                            var newRoomBed   = RoomRequestMapper.AutoMapperRoomBedRelation(item, oldItem.Result[0], userName);
                            var updateResult = await iRoomBedRelationLibrary.UpdateEntityByDapper(newRoomBed).ConfigureAwait(false);

                            if (updateResult.IsError || updateResult.ExceptionMessage != null)
                            {
                                result.IsError          = true;
                                result.ExceptionMessage = updateResult.ExceptionMessage;
                                return(result);
                            }
                            else if (updateResult == null)
                            {
                                result = null;
                                return(result);
                            }
                            if (updateResult.Result == true)
                            {
                                result.Result.ID = newRoomBed.ID;
                            }
                        }
                    }
                    else if (item.ObjectState == ObjectState.Added && item.ID == 0)
                    {
                        var list         = RoomRequestMapper.MapRoomBedRelationEntity(request, item, hotelRoomId, userName);
                        var insertResult = await iRoomBedRelationLibrary.InsertEntity(list.Result).ConfigureAwait(false);

                        if (insertResult.IsError || insertResult.ExceptionMessage != null)
                        {
                            result.IsError          = true;
                            result.ExceptionMessage = insertResult.ExceptionMessage;
                            return(result);
                        }
                        else if (insertResult == null)
                        {
                            result = null;
                            return(result);
                        }
                        result.Result.ID = (int)insertResult.Result;
                    }
                }
                //var roomBedList = await iRoomBedRelationLibrary.GetListByPredicate(x => x.HotelRoomId == hotelRoomId && !x.IsDeleted).ConfigureAwait(false);
                var room = await iRoomLibrary.GetEntity(hotelRoomId);

                if (room.IsError && room.ExceptionMessage != null)
                {
                    result.IsError          = true;
                    result.ExceptionMessage = room.ExceptionMessage;
                    return(result);
                }
                if (request.RoomBedOptions.RoomBedList.Any(x => x.BedId == (int)BedTypes.King || x.BedId == (int)BedTypes.Queen))
                {
                    if (room.Result.IsTwin)
                    {
                        room.Result.IsTwin = false;
                        update             = true;
                    }
                }
                else
                {
                    if (!room.Result.IsTwin)
                    {
                        room.Result.IsTwin = true;
                        update             = true;
                    }
                }
                if (update == true)
                {
                    room.Result.UpdatedBy   = userName;
                    room.Result.UpdatedDate = DateTime.Now.JakartaOffset();
                    var secResult = await iRoomLibrary.UpdateEntityByDapper(room.Result);

                    if (secResult.IsError && secResult.ExceptionMessage != null)
                    {
                        result.IsError          = secResult.IsError;
                        result.ExceptionMessage = secResult.ExceptionMessage;
                        return(result);
                    }
                }
            }
            return(result);
        }
Пример #15
0
        /// <summary>
        /// Creates new room type or updates the existing one
        /// </summary>
        /// <param name="request"></param>
        /// <param name="userName"></param>
        /// <returns>Task<BaseResult<List<Room>>></returns>
        public async Task <BaseResult <List <Room> > > SaveAndUpdateRoom(HotelRoomTypeViewModel request, string userName)
        {
            BaseResult <List <Room> > result = new BaseResult <List <Room> >()
            {
                Result = new List <Room>()
                {
                    new Room()
                    {
                        Id = 0
                    }
                }
            };

            if (request.ObjectState == ObjectState.Added)
            {
                DynamicParameters paramCollection = RoomRequestMapper.CreateRoomTypeParameters(request, userName);
                result = await iRoomLibrary.ExecuteStoredProcedure(Constants.StoredProcedure.CreateRoomType, paramCollection).ConfigureAwait(false);

                return(result);
            }
            else if (request.ObjectState == ObjectState.Modified)
            {
                if (request.RoomId <= default(int))
                {
                    result.IsError   = true;
                    result.ErrorCode = (int)coreHelper.Constants.ErrorCodes.NoRoomOfID;
                    result.Message   = string.Format(coreHelper.Constants.ErrorMessage.NoRoomOfID, request.RoomId);
                    return(result);
                }
                var room = await iRoomLibrary.GetListByPredicate(x => x.Id == request.RoomId && x.HotelId == request.HotelId && !x.IsDeleted);

                if (room.IsError == true || room.ExceptionMessage != null)
                {
                    result.ExceptionMessage = room.ExceptionMessage;
                    result.IsError          = room.IsError;
                    return(result);
                }
                if (!room.Result.Any())
                {
                    result.IsError   = true;
                    result.ErrorCode = (int)coreHelper.Constants.ErrorCodes.NoRoomOfID;
                    result.Message   = string.Format(coreHelper.Constants.ErrorMessage.NoRoomOfID, request.RoomId);
                    return(result);
                }
                var updatedRoom  = RoomRequestMapper.AutoMapperRoom(request, room.Result[0], userName);
                var updateResult = await iRoomLibrary.UpdateEntityByDapper(updatedRoom).ConfigureAwait(false);

                if (updateResult.IsError || updateResult.ExceptionMessage != null)
                {
                    result.IsError          = true;
                    result.ExceptionMessage = updateResult.ExceptionMessage;
                    return(result);
                }
                else if (updateResult == null)
                {
                    result = null;
                    return(result);
                }
                if (updateResult.Result == true)
                {
                    result.Result[0].Id = updatedRoom.Id;
                }
                return(result);
            }
            else
            {
                var room = await iRoomLibrary.GetListByPredicate(x => x.Id == request.RoomId && x.HotelId == request.HotelId && !x.IsDeleted);

                return(room);
            }

            return(result);
        }
Пример #16
0
        /// <summary>
        /// Creates Room bed Relation or updates the existing one
        /// </summary>
        /// <param name="request"></param>
        /// <param name="hotelRoomId"></param>
        /// <param name="userName"></param>
        /// <returns>Task<BaseResult<RoomBedRelation>></returns>
        public async Task <BaseResult <RoomBedRelation> > SaveAndUpdateRoomBedRelation(HotelRoomTypeViewModel request, int hotelRoomId, string userName)
        {
            BaseResult <RoomBedRelation> result = new BaseResult <RoomBedRelation>();

            result.Result = new RoomBedRelation();
            if (request.RoomBedOptions.ObjectState == ObjectState.Added)
            {
                var list         = RoomRequestMapper.CreateRoomBedRelation(request, hotelRoomId, userName);
                var insertResult = await iRoomBedRelationLibrary.InsertEntityList(list.Result).ConfigureAwait(false);

                if (insertResult.IsError && insertResult.ExceptionMessage != null)
                {
                    result.IsError          = insertResult.IsError;
                    result.ExceptionMessage = insertResult.ExceptionMessage;
                    return(result);
                }
                result.Result.ID = (int)insertResult.Result;
                return(result);
            }
            if (request.RoomBedOptions.ObjectState == ObjectState.Modified || request.RoomBedOptions.ObjectState == ObjectState.Unchanged)
            {
                foreach (var item in request.RoomBedOptions.RoomBedList)
                {
                    if (item.ObjectState == ObjectState.Modified && item.ID > 0)
                    {
                        var oldItem = await iRoomBedRelationLibrary.GetListByPredicate(x => x.ID == item.ID && !x.IsDeleted);

                        if (result.IsError || oldItem.ExceptionMessage != null)
                        {
                            result.IsError          = true;
                            result.ExceptionMessage = oldItem.ExceptionMessage;
                            return(result);
                        }
                        if (oldItem != null && oldItem.Result.Any())
                        {
                            var newRoomBed   = RoomRequestMapper.AutoMapperRoomBedRelation(item, oldItem.Result[0], userName);
                            var updateResult = await iRoomBedRelationLibrary.UpdateEntityByDapper(newRoomBed).ConfigureAwait(false);

                            if (updateResult.IsError || updateResult.ExceptionMessage != null)
                            {
                                result.IsError          = true;
                                result.ExceptionMessage = updateResult.ExceptionMessage;
                                return(result);
                            }
                            else if (updateResult == null)
                            {
                                result = null;
                                return(result);
                            }
                            if (updateResult.Result == true)
                            {
                                result.Result.ID = newRoomBed.ID;
                            }
                        }
                    }
                    else if (item.ObjectState == ObjectState.Added && item.ID == 0)
                    {
                        var list         = RoomRequestMapper.MapRoomBedRelationEntity(request, item, hotelRoomId, userName);
                        var insertResult = await iRoomBedRelationLibrary.InsertEntity(list.Result).ConfigureAwait(false);

                        if (insertResult.IsError || insertResult.ExceptionMessage != null)
                        {
                            result.IsError          = true;
                            result.ExceptionMessage = insertResult.ExceptionMessage;
                            return(result);
                        }
                        else if (insertResult == null)
                        {
                            result = null;
                            return(result);
                        }
                        result.Result.ID = (int)insertResult.Result;
                    }
                    //else
                    //{
                    //    result.IsError = true;
                    //    result.ErrorCode = (int)coreHelper.Constants.ErrorCodes.NoRoomBedRelationOfID;
                    //    result.Message = string.Format(coreHelper.Constants.ErrorMessage.NoRoomBedRelationOfID,item.ID);
                    //    return result;
                    //}
                }
                return(result);
            }
            return(result);
        }
Пример #17
0
        public void TestSaveAndUpdateRoomBedRelation_EditRoom_Failed()
        {
            //Arrange
            var userName      = "******";
            var id            = 1;
            var roombedObject = new RoomBedListViewModel()
            {
                ID          = 1,
                BedId       = id,
                NoOfBeds    = 2,
                ObjectState = ObjectState.Modified
            };
            var roomBedOptionObject = new RoomBedOptionViewModel()
            {
                OccupancyId = id,
                ObjectState = ObjectState.Modified
            };

            roomBedOptionObject.RoomBedList.Add(roombedObject);
            var hotelRoomObject = new HotelRoomTypeViewModel()
            {
                RoomId        = id,
                IsActive      = true,
                HotelId       = 1,
                IsFreeSale    = true,
                IsSmoking     = true,
                NoOfRooms     = 2,
                Description   = "Description",
                Name          = "Name",
                Size          = 5,
                RoomTypeId    = id,
                SizeMeasureId = id,
                ObjectState   = ObjectState.Unchanged
            };

            hotelRoomObject.RoomBedOptions = roomBedOptionObject;
            var room = new RoomBedRelation()
            {
                ID = id, IsDeleted = false, HotelId = id
            };
            var baseResult = new BaseResult <List <RoomBedRelation> >()
            {
                Result = new List <RoomBedRelation>()
                {
                    room
                }
            };
            var pred = new Func <RoomBedRelation, bool>(x => x.ID == id && x.IsDeleted == false);

            iRoomBedRelationLibrary.Setup(a => a.GetListByPredicate(It.Is <Func <RoomBedRelation, bool> >(x => x.GetType() == pred.GetType()))).Returns(Task.FromResult(baseResult)).Verifiable();
            iRoomBedRelationLibrary.Setup(a => a.UpdateEntityByDapper(It.IsAny <RoomBedRelation>())).Returns(Task.FromResult(new BaseResult <bool> {
                IsError = true, ExceptionMessage = Helper.Common.GetMockException()
            })).Verifiable();
            //Act
            var result = roomRepository.SaveAndUpdateRoomBedRelation(hotelRoomObject, id, userName);

            //Assert
            iRoomLibrary.Verify();
            Assert.IsTrue(result.Result.IsError);
            Assert.IsTrue(result.Result.ExceptionMessage != null);
        }
Пример #18
0
        public void TestSaveAndUpdateRoomBedRelation_RoomEditPassed_Success()
        {
            //Arrange
            var userName      = "******";
            var id            = 1;
            var roombedObject = new RoomBedListViewModel()
            {
                ID          = 1,
                BedId       = id,
                NoOfBeds    = 2,
                ObjectState = ObjectState.Modified
            };
            var roomBedOptionObject = new RoomBedOptionViewModel()
            {
                OccupancyId = id,
                ObjectState = ObjectState.Modified
            };

            roomBedOptionObject.RoomBedList.Add(roombedObject);
            var hotelRoomObject = new HotelRoomTypeViewModel()
            {
                RoomId        = 1,
                IsActive      = true,
                HotelId       = 1,
                IsFreeSale    = true,
                IsSmoking     = true,
                NoOfRooms     = 2,
                Description   = "Description",
                Name          = "Name",
                Size          = 5,
                RoomTypeId    = id,
                SizeMeasureId = id,
                ObjectState   = ObjectState.Modified
            };

            hotelRoomObject.RoomBedOptions = roomBedOptionObject;
            var room = new Room()
            {
                Id = id, IsActive = true, IsDeleted = false, HotelId = id
            };
            var baseResult = new BaseResult <List <Room> >()
            {
                Result = new List <Room>()
                {
                    room
                }
            };
            var pred = new Func <Room, bool>(x => x.Id == id && x.IsDeleted == false);

            iRoomLibrary.Setup(a => a.GetListByPredicate(It.Is <Func <Room, bool> >(x => x.GetType() == pred.GetType()))).Returns(Task.FromResult(baseResult)).Verifiable();
            iRoomLibrary.Setup(a => a.UpdateEntityByDapper(It.IsAny <Room>())).Returns(Task.FromResult(new BaseResult <bool> {
                Result = true
            })).Verifiable();
            //Act
            var result = roomRepository.SaveAndUpdateRoom(hotelRoomObject, userName);

            //Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Result is BaseResult <List <Room> >);
            Assert.IsTrue(result.Result.Result.Any(x => x.Id == id));
        }
Пример #19
0
        public async Task TestCreateRoomType_SuccessOkResponse()
        {
            //Arrange

            var id            = 1;
            var roombedObject = new RoomBedListViewModel()
            {
                ID          = 0,
                BedId       = id,
                NoOfBeds    = 2,
                ObjectState = ObjectState.Added
            };
            var roomBedOptionObject = new RoomBedOptionViewModel()
            {
                OccupancyId = id,
                ObjectState = ObjectState.Added
            };

            roomBedOptionObject.RoomBedList.Add(roombedObject);
            var hotelRoomObject = new HotelRoomTypeViewModel()
            {
                RoomId        = 0,
                IsActive      = true,
                HotelId       = id,
                IsFreeSale    = true,
                IsSmoking     = true,
                NoOfRooms     = 4,
                Description   = "Description",
                Name          = "Name",
                Size          = 5,
                RoomTypeId    = id,
                SizeMeasureId = id,
                ObjectState   = ObjectState.Added
            };

            hotelRoomObject.RoomBedOptions = roomBedOptionObject;
            mockRoomRepository.Setup(a => a.SaveAndUpdateRoom(It.IsAny <HotelRoomTypeViewModel>(), It.IsAny <string>())).Returns(Task.FromResult(new BaseResult <List <Room> >()
            {
                Result = new List <Room>()
                {
                    new Room()
                    {
                        Id = id
                    }
                }
            }));
            mockRoomRepository.Setup(a => a.SaveAndUpdateRoomBedRelation(It.IsAny <HotelRoomTypeViewModel>(), It.IsAny <int>(), It.IsAny <string>())).Returns(Task.FromResult(new BaseResult <RoomBedRelation>()
            {
                Result = new RoomBedRelation {
                    ID = id
                }
            }));
            // mockRoomRepository.Setup(a => a.GetOccupancy()).Returns(Task.FromResult(new BaseResult<List<Occupancy>>() { Result = new List<Occupancy> { new Occupancy { Id = 1, NoOfGuest = 2, IsActive = true } } }));
            //Act
            IActionResult result = await mockRoomController.CreateRoomType(hotelRoomObject);

            BaseResult <List <Room> > finalResult = (result as Microsoft.AspNetCore.Mvc.OkObjectResult).Value as BaseResult <List <Room> >;

            //Assert
            Assert.AreEqual(((Microsoft.AspNetCore.Mvc.ObjectResult)result).StatusCode, 200);
            Assert.IsNotNull(finalResult);
            Assert.IsTrue(!finalResult.IsError);
        }