Пример #1
0
        private void FillUsualMessageExtraParamsFields(XElement extraParams, GeneralDataModel.Models.Message result)
        {
            if (extraParams != null)
            {
                result.ChatDialogId = GetExtraParam(extraParams, ExtraParamsList.dialog_id);

                var dateSent = extraParams.Element(ExtraParams.GetXNameFor(ExtraParamsList.date_sent));
                if (dateSent != null)
                {
                    long longValue;
                    if (long.TryParse(dateSent.Value, out longValue))
                    {
                        result.DateSent = longValue;
                    }
                }

                var stringIntListConverter = new StringIntListConverter();

                result.NotificationType = GetNotificationType(extraParams);

                result.RoomPhoto           = GetExtraParam(extraParams, ExtraParamsList.room_photo);
                result.RoomName            = GetExtraParam(extraParams, ExtraParamsList.room_name);
                result.CurrentOccupantsIds = stringIntListConverter.ConvertToIntList(GetExtraParam(extraParams, ExtraParamsList.current_occupant_ids));
                result.AddedOccupantsIds   = stringIntListConverter.ConvertToIntList(GetExtraParam(extraParams, ExtraParamsList.added_occupant_ids));
                result.DeletedOccupantsIds = stringIntListConverter.ConvertToIntList(GetExtraParam(extraParams, ExtraParamsList.deleted_occupant_ids));
                result.ExtraParameters     = extraParams;

                double roomUpdateDate;
                if (Double.TryParse(GetExtraParam(extraParams, ExtraParamsList.room_updated_date), out roomUpdateDate))
                {
                    result.RoomUpdateDate = roomUpdateDate;
                }

                var deletedId = GetExtraParam(extraParams, ExtraParamsList.deleted_id);
                if (deletedId != null)
                {
                    int deletedIdInt;
                    if (int.TryParse(deletedId, out deletedIdInt))
                    {
                        result.DeletedId = deletedIdInt;
                    }
                }
            }
        }
Пример #2
0
        private void FillGroupInfoMessageFields(XElement extraParams, GroupInfoMessage groupInfoMessage)
        {
            groupInfoMessage.DialogId        = GetExtraParam(extraParams, ExtraParamsList.dialog_id);
            groupInfoMessage.RoomName        = GetExtraParam(extraParams, ExtraParamsList.room_name);
            groupInfoMessage.RoomPhoto       = GetExtraParam(extraParams, ExtraParamsList.room_photo);
            groupInfoMessage.DateSent        = GetDateTimeExtraParam(extraParams, ExtraParamsList.date_sent);
            groupInfoMessage.RoomUpdatedDate = GetDateTimeExtraParam(extraParams, ExtraParamsList.room_updated_date);

            StringIntListConverter stringIntListConverter = new StringIntListConverter();

            groupInfoMessage.CurrentOccupantsIds = stringIntListConverter.ConvertToIntList(GetExtraParam(extraParams, ExtraParamsList.current_occupant_ids)).ToArray();

            var dialogType = GetExtraParam(extraParams, ExtraParamsList.type);

            if (dialogType != null)
            {
                int intValue;
                if (int.TryParse(dialogType, out intValue) && Enum.IsDefined(typeof(DialogType), intValue))
                {
                    groupInfoMessage.DialogType = (DialogType)intValue;
                }
            }
        }