Ejemplo n.º 1
0
        public async Task <IViewComponentResult> InvokeAsync(string id, string ownerLevel, string ownerId)
        {
            if (string.IsNullOrEmpty(ownerId) && string.IsNullOrEmpty(id))
            {
                return(new ViewComponentPlaceholder());
            }

            if (string.IsNullOrEmpty(id))
            {
                // New Category
                var oLevel = ownerLevel.ToEnumOrDefault(OwnerLevel.User);
                var model  = new AssignmentCategoryViewModel()
                {
                    OwnerLevel = oLevel,
                    OwnerId    = ownerId
                };
                return(View("AssignmentCategoryCreate", model));
            }
            else
            {
                // Edit Category
                var category = await _assignmentManager.GetCategoryAsync(id);

                if (category == null)
                {
                    throw new Exception($"Unable to find Assignment Category (Id:{id})");
                }

                var model = new AssignmentCategoryViewModel()
                {
                    Id         = category.Id,
                    OwnerLevel = category.OwnerLevel,
                    OwnerId    = category.OwnerId,
                    Title      = category.Title
                };
                return(View("AssignmentCategoryEdit", model));
            }
        }
Ejemplo n.º 2
0
        public async Task <IViewComponentResult> InvokeAsync(string id, string ownerLevel, string ownerId, string categoryId)
        {
            if (string.IsNullOrEmpty(id) && string.IsNullOrEmpty(ownerLevel))
            {
                return(new ViewComponentPlaceholder());
            }

            ViewData["ownerLevel"]   = ownerLevel ?? string.Empty;
            ViewData["ownerId"]      = ownerId ?? string.Empty;
            ViewData["TimeZoneList"] = TimeZoneHelper.GetTimeZoneSelectList();

            AssignmentDetailsViewModel model;

            if (string.IsNullOrEmpty(id))
            {
                // Create new assignment
                model = new AssignmentDetailsViewModel()
                {
                    Id               = string.Empty,
                    OwnerLevel       = (OwnerLevel)Enum.Parse(typeof(OwnerLevel), ownerLevel),
                    OwnerId          = ownerId,
                    Status           = AssignmentStatus.Draft,
                    DueDT            = DateTime.Now.AddDays(3),
                    TimeZoneId       = TimeZoneHelper.DefaultTimeZoneId,
                    TimeZoneName     = TimeZoneHelper.NameOfTimeZoneId(TimeZoneHelper.DefaultTimeZoneId),
                    AllowComments    = false,
                    SendNotification = false
                };
                if (!string.IsNullOrEmpty(categoryId))
                {
                    var category = await _assignmentManager.GetCategoryAsync(categoryId);

                    if (category != null)
                    {
                        model.Categories.Add(category);
                        model.CategoryIds.Add(categoryId);
                    }
                }
                return(View("AssignmentDetailsCreate", model));
            }
            else
            {
                // Load existing assignment
                var note = await _assignmentManager.GetAssignmentAsync(id);

                if (note == null)
                {
                    return(new ViewComponentPlaceholder());
                }
                model = note.CloneToAssignmentDetailsViewModel();
                if (string.IsNullOrEmpty(model.TimeZoneId))
                {
                    model.TimeZoneId = TimeZoneHelper.DefaultTimeZoneId; // TO DO: Get the default time zone from the user context.
                    model.DueDT      = TimeZoneHelper.Now(model.TimeZoneId);
                }
                model.TimeZoneName = TimeZoneHelper.NameOfTimeZoneId(model.TimeZoneId);
                await LoadCategoriesAsync(model, id);
                await LoadUserGroupsAsync(model, id);

                if (note.Status == AssignmentStatus.Draft)
                {
                    return(View("AssignmentDetailsEdit", model));
                }
                else
                {
                    return(View("AssignmentDetailsView", model));
                }
            }
        }