public async Task <ActionResult> Index() { var model = new AccessRightsIndexViewModel { Editor = new EditAccessRightsViewModel() }; await Initialize(model); return(View(model)); }
public async Task <ActionResult> Allow(AccessRightsIndexViewModel model) { if (!ModelState.IsValid) { await Initialize(model); return(View(model)); } IVoidResult result = null; if (model.Editor.ScheduleApplied) { if (TimeZoneInfo.FindSystemTimeZoneById(model.Editor.SchedulerTimeZone) == null) { ModelState.AddModelError("Editor_SchedulerTimeZone", "Invalid time zone"); } if (ModelState.IsValid) { result = await ScheduleAccess(model.Editor); } } else { result = await AllowPermanentAccess(model.Editor); } if (result != null && !result.Succeded) { ModelState.AddModelError(string.Empty, result.Fault.Summary); } if (!ModelState.IsValid) { await Initialize(model); return(View(model)); } return(RedirectToAction("Index")); }
private async Task Initialize(AccessRightsIndexViewModel model) { var accessRightsTask = _listAccessRightsRequest.Request(ListCommand.WithoutParameters); var usersTask = _listUsersRequest.Request(ListCommand.WithoutParameters); var accessPointsTask = _listAccessPointsRequest.Request(ListCommand.WithoutParameters); var userGroupsTask = _listUserGroupsRequest.Request(ListCommand.WithoutParameters); await Task.WhenAll(accessRightsTask, usersTask, accessPointsTask, userGroupsTask); model.UserAccessRights = accessRightsTask.Result.UserAccessRights; model.UserGroupAccessRights = accessRightsTask.Result.UserGroupAccessRights; model.Editor.AccessPoints = accessPointsTask.Result.AccessPoints; model.Editor.Users = usersTask.Result.Users; model.Editor.UserGroups = userGroupsTask.Result.Groups; model.Editor.SchedulerTimeZone = TimeZoneInfo.Local.Id; model.Editor.TimeRangePerDays = new Dictionary <string, TimeRange>(); foreach (DayOfWeek day in Enum.GetValues(typeof(DayOfWeek))) { model.Editor.TimeRangePerDays[day.ToString()] = new TimeRange { FromTime = new TimeSpan(9, 0, 0), ToTime = new TimeSpan(18, 0, 0) }; } }