Beispiel #1
0
        public Response <UserSchedulingModel> GetUserFacilities(int userID)
        {
            var repository = _unitOfWork.GetRepository <UserFacilitySchedulingDataModel>(SchemaName.Scheduling);
            var procParams = new List <SqlParameter> {
                new SqlParameter("ResourceID", userID),
                new SqlParameter("ResourceTypeID", 2)
            };
            var userFacilitiesResult = repository.ExecuteStoredProc("usp_GetResourceAvailability", procParams);

            var result = userFacilitiesResult.CloneResponse <UserSchedulingModel>();

            result.ID = userID;
            if (result.ResultCode != 0)
            {
                return(result);
            }

            result.DataItems = new List <UserSchedulingModel>();

            var groupByFacilities = from userFacility in userFacilitiesResult.DataItems
                                    group userFacility by userFacility.FacilityID;

            foreach (var groupFacility in groupByFacilities)
            {
                var userFacility = new UserSchedulingModel();
                userFacility.FacilityID = groupFacility.Key;

                var groupByDays = groupFacility.GroupBy(x => x.DayOfWeekID);

                foreach (var groupByDay in groupByDays)
                {
                    var userFacilityScheduling = new UserFacilitySchedulingModel();
                    userFacilityScheduling.DayOfWeekID = groupByDay.Key;
                    foreach (var item in groupByDay)
                    {
                        userFacilityScheduling.Days = item.Days;
                        var userFacilityTimeScheduling = new UserFacilityTimeSchedulingModel();
                        userFacilityTimeScheduling.ResourceAvailabilityID = item.ResourceAvailabilityID;
                        userFacilityTimeScheduling.AvailabilityStartTime  = item.AvailabilityStartTime;
                        userFacilityTimeScheduling.AvailabilityEndTime    = item.AvailabilityEndTime;
                        userFacilityScheduling.UserFacilityTimeSchedule.Add(userFacilityTimeScheduling);
                    }
                    userFacility.UserFacilitySchedule.Add(userFacilityScheduling);
                }

                userFacility.UserFacilitySchedule = userFacility.UserFacilitySchedule.OrderBy(x => x.DayOfWeekID).ToList();
                result.DataItems.Add(userFacility);
            }

            return(result);
        }
Beispiel #2
0
        public static UserFacilityTimeSchedulingModel ToModel(this UserFacilityTimeSchedulingViewModel entity)
        {
            if (entity == null)
            {
                return(null);
            }

            var model = new UserFacilityTimeSchedulingModel
            {
                ResourceAvailabilityID = entity.ResourceAvailabilityID,
                AvailabilityStartTime  = entity.AvailabilityStartTime,
                AvailabilityEndTime    = entity.AvailabilityEndTime,
                IsActive   = entity.IsActive,
                ModifiedOn = entity.ModifiedOn
            };

            return(model);
        }
Beispiel #3
0
        public Response <UserSchedulingModel> GetUserFacilitySchedule(int userID, int facilityID)
        {
            var result = new Response <UserSchedulingModel>();

            result.ResultCode = 0;

            var dataItem = new List <UserSchedulingModel>();
            var model    = new UserSchedulingModel();

            model.FacilityID = facilityID;

            var repository = _unitOfWork.GetRepository <UserFacilitySchedulingDataModel>(SchemaName.Scheduling);
            var procParams = new List <SqlParameter> {
                new SqlParameter("ResourceID", userID),
                new SqlParameter("ResourceTypeID", 2),
                new SqlParameter("FacilityID", facilityID)
            };
            var userFacilitiesResult = repository.ExecuteStoredProc("usp_GetResourceAvailabilityByFacilityID", procParams);

            var groupByuserFacilities = userFacilitiesResult.DataItems.GroupBy(x => x.DayOfWeekID);

            foreach (var groupByuserFacility in groupByuserFacilities)
            {
                var userFacilityScheduling = new UserFacilitySchedulingModel();
                userFacilityScheduling.DayOfWeekID = groupByuserFacility.Key;
                foreach (var item in groupByuserFacility)
                {
                    userFacilityScheduling.Days           = item.Days;
                    userFacilityScheduling.ScheduleTypeID = item.ScheduleTypeID;
                    var userFacilityTimeScheduling = new UserFacilityTimeSchedulingModel();
                    userFacilityTimeScheduling.ResourceAvailabilityID = item.ResourceAvailabilityID;
                    userFacilityTimeScheduling.AvailabilityStartTime  = item.AvailabilityStartTime;
                    userFacilityTimeScheduling.AvailabilityEndTime    = item.AvailabilityEndTime;
                    userFacilityScheduling.UserFacilityTimeSchedule.Add(userFacilityTimeScheduling);
                }
                model.UserFacilitySchedule.Add(userFacilityScheduling);
            }

            if (model.UserFacilitySchedule != null)
            {
                model.UserFacilitySchedule = model.UserFacilitySchedule.OrderBy(x => x.DayOfWeekID).ToList();
            }

            var repositoryFacility = _unitOfWork.GetRepository <UserFacilitySchedulingDataModel>(SchemaName.Scheduling);
            var procParamsFacility = new List <SqlParameter> {
                new SqlParameter("ResourceID", DBNull.Value),
                new SqlParameter("ResourceTypeID", 6),
                new SqlParameter("FacilityID", facilityID)
            };
            var facilityScheduleResult = repositoryFacility.ExecuteStoredProc("usp_GetResourceAvailabilityByFacilityID", procParamsFacility);

            var groupByFacilities = facilityScheduleResult.DataItems.GroupBy(x => x.DayOfWeekID);

            foreach (var groupByFacility in groupByFacilities)
            {
                var facilityScheduling = new UserFacilitySchedulingModel();
                facilityScheduling.DayOfWeekID = groupByFacility.Key;
                foreach (var item in groupByFacility)
                {
                    facilityScheduling.Days = item.Days;
                    var facilityTimeScheduling = new UserFacilityTimeSchedulingModel();
                    facilityTimeScheduling.ResourceAvailabilityID = item.ResourceAvailabilityID;
                    facilityTimeScheduling.AvailabilityStartTime  = item.AvailabilityStartTime;
                    facilityTimeScheduling.AvailabilityEndTime    = item.AvailabilityEndTime;
                    facilityScheduling.UserFacilityTimeSchedule.Add(facilityTimeScheduling);
                }
                model.FacilitySchedule.Add(facilityScheduling);
            }

            if (model.FacilitySchedule != null)
            {
                model.FacilitySchedule = model.FacilitySchedule.OrderBy(x => x.DayOfWeekID).ToList();
            }

            dataItem.Add(model);
            result.DataItems = dataItem;

            return(result);
        }