Exemplo n.º 1
0
        /// <summary> Получить ModelContact из ContactModelManaged </summary>
        public static ModelContact GetModelContactFromContactModelManaged(ContactModelManaged contactModelManaged)
        {
            if (contactModelManaged == null)
            {
                return(null);
            }

            var result = new ModelContact
            {
                Id         = contactModelManaged.Id,
                Blocked    = contactModelManaged.Blocked,
                Iam        = contactModelManaged.Iam,
                DodicallId = contactModelManaged.DodicallId,
                NativeId   = contactModelManaged.NativeId,
                White      = contactModelManaged.White,
                XmppId     = contactModelManaged.XmppId,
                FirstName  = contactModelManaged.FirstName.Trim(),
                MiddleName = contactModelManaged.MiddleName.Trim(),
                LastName   = contactModelManaged.LastName.Trim(),
                ModelContactSubscriptionObj = GetModelContactSubscriptionFromContactSubscriptionModelManaged(contactModelManaged.Subscription),
                ListModelUserContact        = new List <ModelUserContact>(),
                ListModelUserContactExtra   = new List <ModelUserContact>()
            };

            foreach (var contact in contactModelManaged.Contacts.Where(obj => obj.Type == ContactsContactTypeManaged.Sip))
            {
                var identity = contact.Identity;
                result.ListModelUserContact.Add(new ModelUserContact {
                    Favourite = contact.Favourite, Identity = identity, Manual = contact.Manual, ModelEnumUserContactTypeObj = ModelEnumUserContactType.GetModelEnum((int)contact.Type)
                });
            }

            foreach (var contact in contactModelManaged.Contacts.Where(obj => obj.Type == ContactsContactTypeManaged.Phone))
            {
                result.ListModelUserContactExtra.Add(new ModelUserContact {
                    Favourite = contact.Favourite, Identity = contact.Identity, Manual = contact.Manual, ModelEnumUserContactTypeObj = ModelEnumUserContactType.GetModelEnum((int)contact.Type)
                });
            }

            return(result);
        }
Exemplo n.º 2
0
 /// <summary> Сохраняет контакт в бд </summary>
 private static ContactModelManaged SaveContactModelManaged(ContactModelManaged contactModelManaged)
 {
     return(Logic.SaveContact(contactModelManaged));
 }
Exemplo n.º 3
0
        /// <summary> Получить ContactModelManaged из ModelContact </summary>
        public static ContactModelManaged GetContactModelManagedFromModelContact(ModelContact modelContact)
        {
            if (modelContact == null)
            {
                return(null);
            }

            var result = new ContactModelManaged
            {
                Id           = modelContact.Id,
                Blocked      = modelContact.Blocked,
                DodicallId   = modelContact.DodicallId,
                NativeId     = modelContact.NativeId,
                White        = modelContact.White,
                FirstName    = modelContact.FirstName?.Trim(),
                MiddleName   = modelContact.MiddleName?.Trim(),
                LastName     = modelContact.LastName?.Trim(),
                Subscription = modelContact.ModelContactSubscriptionObj != null ? new ContactSubscriptionModelManaged
                {
                    AskForSubscription = modelContact.ModelContactSubscriptionObj.Ask,
                    SubscriptionStatus = (ContactSubscriptionStatusManaged)modelContact.ModelContactSubscriptionObj.ModelEnumSubscriptionStatusObj.Code,
                    SubscriptionState  = (ContactSubscriptionStateManaged)modelContact.ModelContactSubscriptionObj.ModelEnumSubscriptionStateObj.Code
                } : null,
            };

            if (!String.IsNullOrWhiteSpace(modelContact.XmppId))
            {
                result.Contacts = new ContactsContactModelManaged[(modelContact.ListModelUserContact?.Count ?? 0) + (modelContact.ListModelUserContactExtra?.Count ?? 0) + 1];

                result.Contacts[result.Contacts.Length - 1] = new ContactsContactModelManaged {
                    Type = ContactsContactTypeManaged.Xmpp, Identity = modelContact.XmppId, Manual = false, Favourite = false
                };
            }
            else
            {
                result.Contacts = new ContactsContactModelManaged[(modelContact.ListModelUserContact?.Count ?? 0) + (modelContact.ListModelUserContactExtra?.Count ?? 0)];
            }

            var index = 0;

            if (modelContact.ListModelUserContact != null)
            {
                foreach (var modelUserContact in modelContact.ListModelUserContact)
                {
                    var contactsContactModelManaged = new ContactsContactModelManaged {
                        Favourite = modelUserContact.Favourite, Identity = modelUserContact.Identity, Manual = modelUserContact.Manual, Type = (ContactsContactTypeManaged)(modelUserContact.ModelEnumUserContactTypeObj?.Code ?? 0)
                    };
                    result.Contacts[index] = contactsContactModelManaged;
                    index++;
                }
            }

            if (modelContact.ListModelUserContactExtra != null)
            {
                foreach (var modelUserContact in modelContact.ListModelUserContactExtra)
                {
                    var contactsContactModelManaged = new ContactsContactModelManaged {
                        Favourite = modelUserContact.Favourite, Identity = modelUserContact.Identity, Manual = modelUserContact.Manual, Type = (ContactsContactTypeManaged)(modelUserContact.ModelEnumUserContactTypeObj?.Code ?? 0)
                    };
                    result.Contacts[index] = contactsContactModelManaged;
                    index++;
                }
            }

            return(result);
        }