コード例 #1
0
        public static Group Translate(dynamic importGroup)
        {
            var group = new Group();

            group.Id          = importGroup.gid;
            group.GroupTypeId = 9999;
            group.Name        = importGroup.name;

            string desc = importGroup.description;

            group.Description = Regex.Replace(desc, @"<.*?>", string.Empty);

            string active = importGroup.active;

            group.IsActive = active.AsBoolean();

            // address
            string street1    = importGroup.address;
            string city       = importGroup.city;
            string state      = importGroup.state;
            string postalcode = importGroup.zipcode;

            if (street1.IsNotNullOrWhitespace() && city.IsNotNullOrWhitespace() &&
                state.IsNotNullOrWhitespace() && postalcode.IsNotNullOrWhitespace())
            {
                var address = new GroupAddress();
                address.GroupId     = group.Id;
                address.Street1     = street1;
                address.City        = city;
                address.State       = state;
                address.PostalCode  = postalcode;
                address.AddressType = AddressType.Home;

                group.Addresses.Add(address);
            }

            // meeting day and time
            group.MeetingDay  = importGroup.meetingDay;
            group.MeetingTime = importGroup.meetingTime;

            group.IsPublic = true;

            return(group);
        }
コード例 #2
0
        /// <summary>
        /// Exports the groups.
        /// </summary>
        public static void ExportGroups()
        {
            // create Elexio group type
            ImportPackage.WriteToPackage(new GroupType()
            {
                Id   = 9999,
                Name = "Elexio Group"
            });

            try
            {
                _request = new RestRequest(API_GROUPS, Method.GET);
                _request.AddQueryParameter("session_id", SessionId);
                var response = _client.Execute(_request);
                ApiCounter++;

                dynamic data = JsonConvert.DeserializeObject(response.Content);

                JArray records = data.data;

                if (records.Count > 0)
                {
                    foreach (var group in records)
                    {
                        Slingshot.Core.Model.Group importGroup = ElexioCommunityGroup.Translate(group);
                        if (importGroup != null)
                        {
                            ImportPackage.WriteToPackage(importGroup);
                        }

                        _request = new RestRequest(API_GROUP_MEMBERS + importGroup.Id.ToString() + "/people", Method.GET);
                        _request.AddQueryParameter("session_id", SessionId);
                        response = _client.Execute(_request);
                        ApiCounter++;

                        data = JsonConvert.DeserializeObject(response.Content);

                        dynamic groupMemberRecords = data.data;

                        if (groupMemberRecords != null)
                        {
                            foreach (var letterGroup in groupMemberRecords)
                            {
                                foreach (var groupMember in letterGroup.Value)
                                {
                                    GroupMember importGroupMember = ElexioCommunityGroupMember.Translate(groupMember, importGroup.Id);
                                    if (importGroupMember != null)
                                    {
                                        ImportPackage.WriteToPackage(importGroupMember);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorMessage = ex.Message;
            }
        }