Example #1
0
        /// <summary>
        /// Gets a Non-URDMS user and inserts it into a suitable model for the partial view.
        /// </summary>
        /// <param name="term">A Non URDMS user full name.</param>
        /// <param name="userType">Type of user ('project' or 'data-collection')</param>
        /// <returns>Partial view</returns>
        public ActionResult GetNewNonUrdmsUser(string term, string userType)
        {
            if (string.IsNullOrWhiteSpace(term))
            {
                return(new EmptyResult());
            }

            var newRow = new NonUrdmsUserViewModel {
                Id = 0, FullName = term
            };

            switch (userType)
            {
            case "project":
            {
                var values = Enum.GetValues(typeof(AccessRole)).Cast <AccessRole>().Except(new[] { AccessRole.Owners, AccessRole.None });
                ViewBag.Relationships = values.ToDictionary(o => (int)o, o => o.GetDescription());
                newRow.Relationship   = (int)AccessRole.Visitors;
            }
            break;

            case "data-collection":
            {
                var values = Enum.GetValues(typeof(DataCollectionRelationshipType)).Cast <DataCollectionRelationshipType>().Except(new[] { DataCollectionRelationshipType.Manager, DataCollectionRelationshipType.None });
                ViewBag.Relationships = values.ToDictionary(o => (int)o, o => o.GetDescription());
                newRow.Relationship   = (int)DataCollectionRelationshipType.AssociatedResearcher;
            }
            break;

            default:
                return(new EmptyResult());
            }

            return(PartialView("_NonUrdmsUser", newRow));
        }
Example #2
0
        public static void DeserializeNonUrdmsUsers <T>(this IUserManagementViewModel model, NameValueCollection formParams)
        {
            model.NonUrdmsUsers = new List <NonUrdmsUserViewModel>();
            var rows = formParams.GetValues("nonurdms.users.row");

            if (rows != null)
            {
                foreach (var row in rows)
                {
                    var userParts    = row.Split(',');
                    var id           = int.Parse(userParts[0]);
                    var isDelete     = id == 0 ? formParams["RemoveNonUrdmsUser" + userParts[1]] : formParams["RemoveNonUrdmsUser" + id];
                    var relationship = (int)(object)(id == 0
                                                                                   ? formParams["NonUrdmsUserRelationship" + userParts[1]]
                                                                                   : formParams["NonUrdmsUserRelationship" + id]).GetEnumValue <T>();

                    var isRemoveOperation = !isDelete.Contains("true") && formParams["DeleteNonUrdmsUser"] != null;
                    var isAddOperation    = formParams["AddNonUrdmsUser"] != null;
                    var isSubmitOperation = formParams["DeleteNonUrdmsUser"] == null && formParams["AddNonUrdmsUser"] == null;

                    if (isRemoveOperation || isAddOperation || isSubmitOperation)
                    {
                        var user = new NonUrdmsUserViewModel
                        {
                            Id           = id,
                            FullName     = userParts[2],
                            Relationship = relationship
                        };
                        model.NonUrdmsUsers.Add(user);
                    }
                }
            }
        }