private void UpdateMasterRoles(string token) { var responseData = HttpGetAuthorized(GetApiUrl(ApiUrl.AllRoles), token); var responseArray = JArray.Parse(responseData); var masterRoles = Database.Query <MasterRole>().ToList(); var usedMasterRoles = new List <MasterRole>(); foreach (var roleObject in responseArray.Values <JObject>()) { var id = Guid.Parse(roleObject.Property("id").Value.Value <string>()); var name = new MultiLanguageString(roleObject.Property("name").Value.Value <JArray>()); var masterRole = masterRoles.FirstOrDefault(mr => mr.Id.Value.Equals(id)); if (masterRole == null) { masterRole = new MasterRole(id); masterRole.Name.Value = name; Database.Save(masterRole); } else if (masterRole.Name.Value != name) { masterRole.Name.Value = name; Database.Save(masterRole); } usedMasterRoles.Add(masterRole); } foreach (var masterRole in masterRoles) { if (!usedMasterRoles.Contains(masterRole)) { masterRole.Delete(Database); } } }
public NamedIdViewModel(Translator translator, MasterRole masterRole, bool selected) { Id = masterRole.Id.ToString(); Name = masterRole.Name.Value[translator.Language].EscapeHtml(); Selected = selected; }