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