示例#1
0
        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;
 }