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); }
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); }
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); }