Esempio n. 1
0
        /// <summary>
        /// Deletes the room facility relation if object state is deleted
        /// </summary>
        /// <param name="facility"></param>
        /// <param name="userName"></param>
        /// <returns>Task<BaseResult<long>></returns>
        public async Task <BaseResult <long> > DeleteRoomFacilityRelation(RoomFacilityViewModel facility, string userName)
        {
            var updateResult = new BaseResult <bool>();
            var result       = new BaseResult <long>();
            var list         = new List <RoomFacilityRelation>();
            var facilities   = await this.iRoomFacilityRelationLibrary.GetListByPredicate(x => x.FacilityId == facility.Id && !x.IsDeleted);

            if (facilities.Result.Any())
            {
                foreach (var roomFacility in facilities.Result)
                {
                    roomFacility.IsDeleted   = true;
                    roomFacility.UpdatedBy   = userName;
                    roomFacility.UpdatedDate = DateTime.Now.JakartaOffset();
                }
                updateResult = await this.iRoomFacilityRelationLibrary.UpdateEntityList(facilities.Result);

                if (updateResult.IsError || updateResult.ExceptionMessage != null)
                {
                    result.IsError          = updateResult.IsError;
                    result.ExceptionMessage = updateResult.ExceptionMessage;
                    return(result);
                }
                result.Result = 1;
                return(result);
            }
            return(result);
        }
Esempio n. 2
0
        /// <summary>
        /// Handles the object state unchanged of room facility
        /// </summary>
        /// <param name="facility"></param>
        /// <param name="userName"></param>
        /// <returns>Task<BaseResult<long>></returns>
        public async Task <BaseResult <long> > UnchangedRoomFacilityRelation(RoomFacilityViewModel facility, string userName, int hotelId)
        {
            var result       = new BaseResult <long>();
            var updateResult = new BaseResult <bool>();
            var list         = new List <RoomFacilityRelation>();

            if (facility.IsSelected == true && facility.FacilitiesRoomList != null)
            {
                foreach (var roomFacility in facility.FacilitiesRoomList)
                {
                    if (roomFacility.ObjectState == ObjectState.Added)
                    {
                        if (roomFacility.IsSelected == true)
                        {
                            RoomFacilityRelation roomFacilityRelation = new RoomFacilityRelation
                            {
                                HotelId         = hotelId,
                                FacilityId      = facility.Id,
                                FacilityTypeId  = facility.FacilityTypeId,
                                FacilityGroupId = facility.FacilityGroupId,
                                IsDeleted       = false,
                                IsProvisioned   = facility.IsSelected,
                                CreatedBy       = userName,
                                UpdatedBy       = userName,
                                HotelRoomTypeId = roomFacility.RoomTypeId
                            };
                            result = await this.iRoomFacilityRelationLibrary.InsertEntity(roomFacilityRelation);

                            if (result.IsError || result.ExceptionMessage != null)
                            {
                                return(result);
                            }
                            result.Result = result.Result;
                        }
                    }
                    else if (roomFacility.ObjectState == ObjectState.Deleted)
                    {
                        var roomFacilityItem = this.iRoomFacilityRelationLibrary.GetListByPredicate(x => x.FacilityId == facility.Id && !x.IsDeleted && x.Id == roomFacility.RoomFacilityRelationId).Result.Result.SingleOrDefault();
                        if (roomFacilityItem != null)
                        {
                            roomFacilityItem.IsDeleted   = true;
                            roomFacilityItem.UpdatedBy   = userName;
                            roomFacilityItem.UpdatedDate = DateTime.Now.JakartaOffset();
                            updateResult = await this.iRoomFacilityRelationLibrary.UpdateEntityByDapper(roomFacilityItem);

                            if (updateResult.IsError || updateResult.ExceptionMessage != null)
                            {
                                result.IsError          = updateResult.IsError;
                                result.ExceptionMessage = updateResult.ExceptionMessage;
                                return(result);
                            }
                        }
                    }
                }
            }
            result.Result = 1;
            return(result);
        }
        public async Task TestCreateRoomFacilityRelationEdit_SuccessOkResponse()
        {
            var id = 1;
            //Arrange
            RoomFacilityGroupListViewModel roomFacilities = new RoomFacilityGroupListViewModel()
            {
                HotelId     = 1,
                ObjectState = ObjectState.Added,
            };
            RoomFacilityGroupViewModel facilityGroup = new RoomFacilityGroupViewModel()
            {
                Id   = 1,
                Name = "Group1",
            };
            RoomFacilityTypeViewModel facilityType = new RoomFacilityTypeViewModel()
            {
                FacilityGroupId = 1,
            };
            RoomFacilityViewModel facility = new RoomFacilityViewModel()
            {
                Id              = 1,
                Name            = "facility1",
                ObjectState     = ObjectState.Deleted,
                FacilityGroupId = 1,
                IsSelected      = true
            };
            FacilitiesRoomList facilityRoom = new FacilitiesRoomList()
            {
                RoomTypeId  = 1,
                RoomName    = "Room1",
                IsSelected  = true,
                ObjectState = ObjectState.Deleted
            };

            facility.FacilitiesRoomList.Add(facilityRoom);
            facilityType.FacilityList.Add(facility);
            facilityGroup.RoomFacilityTypes.Add(facilityType);
            roomFacilities.FacilityGroupList.Add(facilityGroup);
            mockAmenitiesRepository.Setup(a => a.InsertAndUpdateRoomFacilityRelation(It.IsAny <RoomFacilityGroupListViewModel>(), It.IsAny <string>())).Returns(Task.FromResult(new BaseResult <long>()
            {
                Result = 1
            }));
            //Act
            IActionResult result = await mockAmenitiesController.CreateRoomFacilityRelation(roomFacilities);

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

            //Assert
            Assert.AreEqual(((Microsoft.AspNetCore.Mvc.ObjectResult)result).StatusCode, 200);
            Assert.IsNotNull(finalResult);
            Assert.IsTrue(!finalResult.IsError);
            Assert.IsTrue(finalResult.Result == id);
        }
        public void TestInsertAndUpdateRoomFacilityRelation_SaveRoomFacilities_Success()
        {
            var    id       = 1;
            string userName = "******";

            //Arrange
            RoomFacilityGroupListViewModel roomFacilities = new RoomFacilityGroupListViewModel()
            {
                HotelId     = 1,
                ObjectState = ObjectState.Added,
            };
            RoomFacilityGroupViewModel facilityGroup = new RoomFacilityGroupViewModel()
            {
                Id   = 1,
                Name = "Group1",
            };
            RoomFacilityTypeViewModel facilityType = new RoomFacilityTypeViewModel()
            {
                FacilityGroupId = 1,
            };
            RoomFacilityViewModel facility = new RoomFacilityViewModel()
            {
                Id              = 1,
                Name            = "facility1",
                ObjectState     = ObjectState.Added,
                FacilityGroupId = 1,
                IsSelected      = true
            };
            FacilitiesRoomList facilityRoom = new FacilitiesRoomList()
            {
                RoomTypeId  = 1,
                RoomName    = "Room1",
                IsSelected  = true,
                ObjectState = ObjectState.Added
            };

            facility.FacilitiesRoomList.Add(facilityRoom);
            facilityType.FacilityList.Add(facility);
            facilityGroup.RoomFacilityTypes.Add(facilityType);
            roomFacilities.FacilityGroupList.Add(facilityGroup);
            iRoomFacilityRelationLibrary.Setup(a => a.InsertEntityList(It.IsAny <List <RoomFacilityRelation> >())).Returns(Task.FromResult(new BaseResult <long>()
            {
                Result = id
            })).Verifiable();
            //Act
            var result = amenitiesRepository.InsertAndUpdateRoomFacilityRelation(roomFacilities, userName);

            //Assert
            iRoomFacilityTypeLibrary.Verify();
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Result.Result == id);
        }
        public async Task TestCreateRoomFacilityRelation_Failed_Error()
        {
            //Arrange
            RoomFacilityGroupListViewModel roomFacilities = new RoomFacilityGroupListViewModel()
            {
                HotelId     = 1,
                ObjectState = ObjectState.Added,
            };
            RoomFacilityGroupViewModel facilityGroup = new RoomFacilityGroupViewModel()
            {
                Id   = 1,
                Name = "Group1",
            };
            RoomFacilityTypeViewModel facilityType = new RoomFacilityTypeViewModel()
            {
                FacilityGroupId = 1,
            };
            RoomFacilityViewModel facility = new RoomFacilityViewModel()
            {
                Id   = 1,
                Name = "facility1",
            };
            FacilitiesRoomList facilityRoom = new FacilitiesRoomList()
            {
                RoomTypeId = 1,
                RoomName   = "Room1",
                IsSelected = true,
            };

            facility.FacilitiesRoomList.Add(facilityRoom);
            facilityType.FacilityList.Add(facility);
            facilityGroup.RoomFacilityTypes.Add(facilityType);
            roomFacilities.FacilityGroupList.Add(facilityGroup);
            mockAmenitiesRepository.Setup(a => a.InsertAndUpdateRoomFacilityRelation(It.IsAny <RoomFacilityGroupListViewModel>(), It.IsAny <string>())).Returns(Task.FromResult(new BaseResult <long>()
            {
                IsError          = true,
                ExceptionMessage = Helper.Common.GetMockException(),
            })).Verifiable();
            //Act

            IActionResult result = await mockAmenitiesController.CreateRoomFacilityRelation(roomFacilities);

            //Assert
            mockAmenitiesRepository.Verify();
            Assert.AreEqual(((Microsoft.AspNetCore.Mvc.ObjectResult)result).StatusCode, 500);
        }
Esempio n. 6
0
        /// <summary>
        /// Adds thr room facility Relation if object state is added
        /// </summary>
        /// <param name="facility"></param>
        /// <param name="userName"></param>
        /// <returns>Task<BaseResult<long>></returns>
        public async Task <BaseResult <long> > AddRoomFacilityRelation(RoomFacilityViewModel facility, string userName, int hotelId)
        {
            var result = new BaseResult <long>();
            var list   = new List <RoomFacilityRelation>();

            if (facility.IsSelected == true && facility.FacilitiesRoomList.Any())
            {
                foreach (var facilityRoom in facility.FacilitiesRoomList)
                {
                    if (facilityRoom.IsSelected == true)
                    {
                        RoomFacilityRelation roomFacilityRelation = new RoomFacilityRelation
                        {
                            HotelId         = hotelId,
                            FacilityId      = facility.Id,
                            FacilityTypeId  = facility.FacilityTypeId,
                            FacilityGroupId = facility.FacilityGroupId,
                            IsDeleted       = false,
                            IsProvisioned   = facility.IsSelected,
                            CreatedBy       = userName,
                            UpdatedBy       = userName,
                            HotelRoomTypeId = facilityRoom.RoomTypeId
                        };
                        list.Add(roomFacilityRelation);
                    }
                }
                result = await this.iRoomFacilityRelationLibrary.InsertEntityList(list);

                if (result.IsError || result.ExceptionMessage != null)
                {
                    return(result);
                }
            }

            else
            {
                result.Message = coreHelper.Constants.ErrorMessage.NoRooms;
                return(result);
            }

            return(result);
        }
Esempio n. 7
0
        public async Task <IViewComponentResult> InvokeAsync(int id)
        {
            RoomFacilityViewModel model = new RoomFacilityViewModel();

            if (id == 0)
            {
            }

            var roomfacilities = _context.RoomFacilities.
                                 Include(p => p.HotelRoom).FirstOrDefault(p => p.HotelRoom.HotelRoomId == id);

            if (roomfacilities != null)
            {
                model.Ac = roomfacilities.Ac;
                model.Tv = roomfacilities.Tv;
                model.AttachedWashRoom = roomfacilities.AttachedWashRoom;
                model.Internet         = roomfacilities.Internet;
            }
            return(View(model));
        }
        public async Task TestCreateRoomFacilityRelation_Failed_BadRequest1()
        {
            //Arrange
            RoomFacilityGroupListViewModel roomFacilities = new RoomFacilityGroupListViewModel()
            {
                HotelId     = 1,
                ObjectState = ObjectState.Added,
            };
            RoomFacilityGroupViewModel facilityGroup = new RoomFacilityGroupViewModel()
            {
                Id   = 1,
                Name = "Group1",
            };
            RoomFacilityTypeViewModel facilityType = new RoomFacilityTypeViewModel()
            {
                FacilityGroupId = 1,
            };
            RoomFacilityViewModel facility = new RoomFacilityViewModel()
            {
                Id   = 1,
                Name = "facility1",
            };
            FacilitiesRoomList facilityRoom = null;

            facility.FacilitiesRoomList.Add(facilityRoom);
            facilityType.FacilityList.Add(facility);
            facilityGroup.RoomFacilityTypes.Add(facilityType);
            roomFacilities.FacilityGroupList.Add(facilityGroup);
            mockAmenitiesRepository.Setup(a => a.InsertAndUpdateRoomFacilityRelation(It.IsAny <RoomFacilityGroupListViewModel>(), It.IsAny <string>())).Returns(Task.FromResult(new BaseResult <long>()
            {
                Message = "Room must be selected"
            }));
            //Act
            var result = await mockAmenitiesController.CreateRoomFacilityRelation(roomFacilities);

            //Assert
            Assert.AreEqual(((BadRequestObjectResult)result).StatusCode, 400);
        }
        public void TestInsertAndUpdateRoomFacilityRelation_DeleteRoomFacilities_Success()
        {
            var    id       = 1;
            string userName = "******";
            //Arrange
            RoomFacilityGroupListViewModel roomFacilities = new RoomFacilityGroupListViewModel()
            {
                HotelId     = 1,
                ObjectState = ObjectState.Added,
            };
            RoomFacilityGroupViewModel facilityGroup = new RoomFacilityGroupViewModel()
            {
                Id   = 1,
                Name = "Group1",
            };
            RoomFacilityTypeViewModel facilityType = new RoomFacilityTypeViewModel()
            {
                FacilityGroupId = 1,
            };
            RoomFacilityViewModel facility = new RoomFacilityViewModel()
            {
                Id              = 1,
                Name            = "facility1",
                ObjectState     = ObjectState.Deleted,
                FacilityGroupId = 1,
                IsSelected      = true
            };
            FacilitiesRoomList facilityRoom = new FacilitiesRoomList()
            {
                RoomTypeId  = 1,
                RoomName    = "Room1",
                IsSelected  = true,
                ObjectState = ObjectState.Unchanged
            };

            facility.FacilitiesRoomList.Add(facilityRoom);
            facilityType.FacilityList.Add(facility);
            facilityGroup.RoomFacilityTypes.Add(facilityType);
            roomFacilities.FacilityGroupList.Add(facilityGroup);
            iRoomFacilityRelationLibrary.Setup(a => a.UpdateEntityList(It.IsAny <List <RoomFacilityRelation> >())).Returns(Task.FromResult(new BaseResult <bool>()
            {
                Result = true
            })).Verifiable();
            var baseResult = new BaseResult <List <RoomFacilityRelation> >()
            {
                Result = new List <RoomFacilityRelation>()
                {
                    new RoomFacilityRelation()
                    {
                        Id = 1, IsDeleted = false, FacilityId = 1
                    }
                }
            };
            var pred = new Func <RoomFacilityRelation, bool>(x => x.FacilityId == id && x.IsDeleted == false);

            iRoomFacilityRelationLibrary.Setup(a => a.GetListByPredicate(It.Is <Func <RoomFacilityRelation, bool> >(x => x.GetType() == pred.GetType()))).Returns(Task.FromResult(baseResult)).Verifiable();
            //Act
            var result = amenitiesRepository.InsertAndUpdateRoomFacilityRelation(roomFacilities, userName);

            //Assert
            iRoomFacilityTypeLibrary.Verify();
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Result.Result == 1);
        }