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); } } } }
private static void UpdateParties(this IEnumerable <ProjectParty> entities, IUserManagementViewModel model) { foreach (var entity in entities.Where(o => o.Id > 0)) { dynamic vm = !string.IsNullOrWhiteSpace(entity.Party.UserId) ? model.UrdmsUsers.SingleOrDefault(o => o.Id == entity.Id) : (object)model.NonUrdmsUsers.SingleOrDefault(o => o.Id == entity.Id); if (vm != null) { var role = (AccessRole)vm.Relationship; entity.Role = role; } } }
public static IList <T> MapFrom <T>(this IList <T> entities, IUserManagementViewModel model) where T : class, IUserManagementParty { if (model == null || (model.UrdmsUsers.IsEmpty() && model.NonUrdmsUsers.IsEmpty())) { return(entities); } if (typeof(T) == typeof(ProjectParty)) { entities.Cast <ProjectParty>().UpdateParties(model); entities.AddRange(GetNewProjectParties(model).Cast <T>()); } else if (typeof(T) == typeof(DataCollectionParty)) { entities.Cast <DataCollectionParty>().UpdateParties(model); entities.AddRange(GetNewDataCollectionParties(model).Cast <T>()); } return(entities); }
private static IEnumerable <DataCollectionParty> GetNewDataCollectionParties(IUserManagementViewModel model) { var newNonUrdmsUsers = from o in model.NonUrdmsUsers where o.Id < 1 select new DataCollectionParty { Party = new Party { FullName = o.FullName, Id = o.PartyId, Organisation = o.Organisation }, Relationship = (DataCollectionRelationshipType)o.Relationship }; var newUrdmsUsers = from o in model.UrdmsUsers where o.Id < 1 select new DataCollectionParty { Party = new Party { FullName = o.FullName, Id = o.PartyId, UserId = o.UserId, Organisation = "" }, // TODO: Insert your organisation here Relationship = (DataCollectionRelationshipType)o.Relationship }; return(newNonUrdmsUsers.Union(newUrdmsUsers)); }