public static UserSchedulingModel ToModel(this UserSchedulingViewModel entity) { if (entity == null) { return(null); } var model = new UserSchedulingModel { FacilityID = entity.FacilityID, ResourceID = entity.ResourceID, UserFacilitySchedule = new List <UserFacilitySchedulingModel>(), ModifiedOn = entity.ModifiedOn }; if (entity.UserFacilitySchedule != null) { entity.UserFacilitySchedule.ForEach(delegate(UserFacilitySchedulingViewModel schedule) { var transformedModel = schedule.ToModel(); model.UserFacilitySchedule.Add(transformedModel); }); } return(model); }
private string GenerateRequestXml(UserSchedulingModel userFacilitySchedule) { using (StringWriter sWriter = new StringWriter()) { XmlWriterSettings settings = new XmlWriterSettings(); settings.OmitXmlDeclaration = true; using (XmlWriter XWriter = XmlWriter.Create(sWriter)) { XWriter.WriteStartElement("RequestXMLValue"); if (userFacilitySchedule.UserFacilitySchedule != null) { foreach (UserFacilitySchedulingModel userSchedule in userFacilitySchedule.UserFacilitySchedule) { foreach (UserFacilityTimeSchedulingModel userFacilityTime in userSchedule.UserFacilityTimeSchedule) { XWriter.WriteStartElement("Scheduling"); XWriter.WriteElementString("ResourceAvailabilityID", userFacilityTime.ResourceAvailabilityID.ToString()); XWriter.WriteElementString("DefaultFacilityID", userFacilitySchedule.FacilityID.ToString()); XWriter.WriteElementString("ScheduleTypeID", userSchedule.ScheduleTypeID.ToString()); XWriter.WriteElementString("DayOfWeekID", userSchedule.DayOfWeekID.ToString()); XWriter.WriteElementString("AvailabilityStartTime", userFacilityTime.AvailabilityStartTime.ToString()); XWriter.WriteElementString("AvailabilityEndTime", userFacilityTime.AvailabilityEndTime.ToString()); XWriter.WriteEndElement(); } } } XWriter.WriteEndElement(); } return(sWriter.ToString()); } }
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 UserSchedulingViewModel ToViewModel(this UserSchedulingModel entity) { if (entity == null) { return(null); } var model = new UserSchedulingViewModel { FacilityID = entity.FacilityID, ResourceID = entity.ResourceID, UserFacilitySchedule = new List <UserFacilitySchedulingViewModel>(), FacilitySchedule = new List <UserFacilitySchedulingViewModel>(), ModifiedOn = entity.ModifiedOn }; if (entity.UserFacilitySchedule != null) { entity.UserFacilitySchedule.ForEach(delegate(UserFacilitySchedulingModel schedule) { var transformedModel = schedule.ToViewModel(); model.UserFacilitySchedule.Add(transformedModel); model.RowCount += transformedModel.RowCount; }); } if (entity.FacilitySchedule != null) { entity.FacilitySchedule.ForEach(delegate(UserFacilitySchedulingModel schedule) { var transformedModel = schedule.ToViewModel(); model.FacilitySchedule.Add(transformedModel); }); } var firstUserFacility = model.UserFacilitySchedule.FirstOrDefault(); if (firstUserFacility != null) { firstUserFacility.IsFirst = true; } var lastUserFacility = model.UserFacilitySchedule.LastOrDefault(); if (lastUserFacility != null) { lastUserFacility.IsLast = true; } return(model); }
public void SaveUserFacilitySchedule_Success() { var url = baseRoute + "SaveUserFacilitySchedule"; var scheduleMonday = new UserFacilitySchedulingModel { FacilityID = 3, DayOfWeekID = 1, ScheduleTypeID = 4, UserFacilityTimeSchedule = new List <UserFacilityTimeSchedulingModel> { new UserFacilityTimeSchedulingModel { ResourceAvailabilityID = 0, AvailabilityStartTime = "0800", AvailabilityEndTime = "1200" }, new UserFacilityTimeSchedulingModel { ResourceAvailabilityID = 0, AvailabilityStartTime = "1300", AvailabilityEndTime = "1200" } } }; var scheduleTuesday = new UserFacilitySchedulingModel { FacilityID = 3, DayOfWeekID = 2, ScheduleTypeID = 4, UserFacilityTimeSchedule = new List <UserFacilityTimeSchedulingModel> { new UserFacilityTimeSchedulingModel { ResourceAvailabilityID = 0, AvailabilityStartTime = "0800", AvailabilityEndTime = "1200" }, new UserFacilityTimeSchedulingModel { ResourceAvailabilityID = 0, AvailabilityStartTime = "1300", AvailabilityEndTime = "1200" } } }; var userSchedulingModel = new UserSchedulingModel { FacilityID = 3, ResourceID = 1, UserFacilitySchedule = new List <UserFacilitySchedulingModel> { scheduleMonday, scheduleTuesday } }; var response = communicationManager.Post <UserSchedulingModel, Response <UserSchedulingModel> >(userSchedulingModel, url); Assert.IsTrue(response != null, "Response can't be null"); Assert.IsTrue(response.ResultCode == 0, "Result Code must be 0"); }
public Response <UserSchedulingModel> SaveUserFacilitySchedule(UserSchedulingModel userFacilitySchedule) { var repository = _unitOfWork.GetRepository <UserSchedulingModel>(SchemaName.Scheduling); SqlParameter resourceIDParam = new SqlParameter("ResourceID", userFacilitySchedule.ResourceID); SqlParameter resourceTypeIDParam = new SqlParameter("ResourceTypeID", 2); SqlParameter facilityIDParam = new SqlParameter("FacilityID", userFacilitySchedule.FacilityID); SqlParameter schedulingXMLParam = new SqlParameter("SchedulingXML", GenerateRequestXml(userFacilitySchedule)); schedulingXMLParam.DbType = System.Data.DbType.Xml; SqlParameter modifiedOnParam = new SqlParameter("ModifiedOn", userFacilitySchedule.ModifiedOn ?? DateTime.Now); List <SqlParameter> procParams = new List <SqlParameter>() { resourceIDParam, resourceTypeIDParam, facilityIDParam, schedulingXMLParam, modifiedOnParam }; var result = _unitOfWork.EnsureInTransaction <Response <UserSchedulingModel> >(repository.ExecuteNQStoredProc, "usp_SaveResourceAvailability", procParams, adonResult: true); return(result); }
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); }
public IHttpActionResult SaveUserFacilitySchedule(UserSchedulingModel userFacilitySchedule) { return(new HttpResult <Response <UserSchedulingModel> >(_userSchedulingDataProvider.SaveUserFacilitySchedule(userFacilitySchedule), Request)); }
public Response <UserSchedulingModel> SaveUserFacilitySchedule(UserSchedulingModel userFacilitySchedule) { return(_userSchedulingService.SaveUserFacilitySchedule(userFacilitySchedule)); }
public IHttpActionResult SaveMyProfileFacilitySchedule(UserSchedulingModel userFacilitySchedule) { return(new HttpResult <Response <UserSchedulingModel> >(_userSchedulingRuleEngine.SaveUserFacilitySchedule(userFacilitySchedule), Request)); }
public Response <UserSchedulingModel> SaveUserFacilitySchedule(UserSchedulingModel userFacilitySchedule) { string apiUrl = BaseRoute + "SaveUserFacilitySchedule"; return(_communicationManager.Post <UserSchedulingModel, Response <UserSchedulingModel> >(userFacilitySchedule, apiUrl)); }