Example #1
0
        public TimeModel GetDelay(FunctionName functionName, long groupSettingsId)
        {
            var groupSettings =
                new GetSettingsByGroupSettingsIdQueryHandler(new DataBaseContext()).Handle(
                    new GetSettingsByGroupSettingsIdQuery
            {
                GroupSettingsId = groupSettingsId
            });

            switch (functionName)
            {
            case FunctionName.SendMessageToNewFriends:
            {
                return(groupSettings.MessageOptions.RetryTimeSendNewFriend);
            }

            case FunctionName.SendMessageToUnanswered:
            {
                return(groupSettings.MessageOptions.RetryTimeSendUnanswered);
            }

            case FunctionName.SendMessageToUnread:
            {
                return(groupSettings.MessageOptions.RetryTimeSendUnread);
            }

            case FunctionName.RefreshFriends:
            {
                return(groupSettings.FriendsOptions.RetryTimeRefreshFriends);
            }

            case FunctionName.GetNewFriendsAndRecommended:
            {
                return(groupSettings.FriendsOptions.RetryTimeGetNewAndRecommendedFriends);
            }

            case FunctionName.ConfirmFriendship:
            {
                return(groupSettings.FriendsOptions.RetryTimeConfirmFriendships);
            }

            case FunctionName.SendRequestFriendship:
            {
                return(groupSettings.FriendsOptions.RetryTimeSendRequestFriendships);
            }

            default:
                throw new ArgumentOutOfRangeException("functionName");
            }
        }
        public GroupSettingsViewModel GetSettings(long groupSettingsId)
        {
            var settings = new GetSettingsByGroupSettingsIdQueryHandler(new DataBaseContext()).Handle(new GetSettingsByGroupSettingsIdQuery
            {
                GroupSettingsId = groupSettingsId
            });

            if (settings == null)
            {
                return(new GroupSettingsViewModel());
            }

            return(new GroupSettingsViewModel
            {
                GroupId = settings.GroupId,
                IsJoinToAllGroups = settings.CommunityOptions.IsJoinToAllGroups,
                RetryTimeInviteTheGroupsHour = settings.CommunityOptions.RetryTimeInviteTheGroups == null ? 0 : settings.CommunityOptions.RetryTimeInviteTheGroups.Hours,
                RetryTimeInviteTheGroupsMin = settings.CommunityOptions.RetryTimeInviteTheGroups == null ? 0 : settings.CommunityOptions.RetryTimeInviteTheGroups.Minutes,
                RetryTimeInviteTheGroupsSec = settings.CommunityOptions.RetryTimeInviteTheGroups == null ? 0 : settings.CommunityOptions.RetryTimeInviteTheGroups.Seconds,
                RetryTimeInviteThePagesHour = settings.CommunityOptions.RetryTimeInviteThePages == null ? 0 : settings.CommunityOptions.RetryTimeInviteThePages.Hours,
                RetryTimeInviteThePagesMin = settings.CommunityOptions.RetryTimeInviteThePages == null ? 0 : settings.CommunityOptions.RetryTimeInviteThePages.Minutes,
                RetryTimeInviteThePagesSec = settings.CommunityOptions.RetryTimeInviteThePages == null ? 0 : settings.CommunityOptions.RetryTimeInviteThePages.Seconds,
                FacebookGroups = ConvertListToString(settings.CommunityOptions.Groups),
                FacebookPages = ConvertListToString(settings.CommunityOptions.Pages),
                MaxFriendsJoinGroupInDay = settings.CommunityOptions.MaxFriendsJoinGroupInDay,
                MinFriendsJoinGroupInDay = settings.CommunityOptions.MinFriendsJoinGroupInDay,
                MaxFriendsJoinGroupInHour = settings.CommunityOptions.MaxFriendsJoinGroupInHour,
                MinFriendsJoinGroupInHour = settings.CommunityOptions.MinFriendsJoinGroupInHour,
                MaxFriendsJoinPageInDay = settings.CommunityOptions.MaxFriendsJoinPageInDay,
                MinFriendsJoinPageInDay = settings.CommunityOptions.MinFriendsJoinPageInDay,
                MaxFriendsJoinPageInHour = settings.CommunityOptions.MaxFriendsJoinPageInHour,
                MinFriendsJoinPageInHour = settings.CommunityOptions.MinFriendsJoinPageInHour,
                Gender = settings.GeoOptions.Gender,
                Cities = settings.GeoOptions.Cities,
                Countries = settings.GeoOptions.Countries,

                //friends options
                RetryTimeSendUnreadHour = settings.MessageOptions.RetryTimeSendUnread.Hours,
                RetryTimeSendUnreadMin = settings.MessageOptions.RetryTimeSendUnread.Minutes,
                RetryTimeSendUnreadSec = settings.MessageOptions.RetryTimeSendUnread.Seconds,
                RetryTimeConfirmFriendshipsHour = settings.FriendsOptions.RetryTimeConfirmFriendships.Hours,
                RetryTimeConfirmFriendshipsMin = settings.FriendsOptions.RetryTimeConfirmFriendships.Minutes,
                RetryTimeConfirmFriendshipsSec = settings.FriendsOptions.RetryTimeConfirmFriendships.Seconds,
                RetryTimeGetNewAndRecommendedFriendsHour = settings.FriendsOptions.RetryTimeGetNewAndRecommendedFriends.Hours,
                RetryTimeGetNewAndRecommendedFriendsMin = settings.FriendsOptions.RetryTimeGetNewAndRecommendedFriends.Minutes,
                RetryTimeGetNewAndRecommendedFriendsSec = settings.FriendsOptions.RetryTimeGetNewAndRecommendedFriends.Seconds,
                RetryTimeRefreshFriendsHour = settings.FriendsOptions.RetryTimeRefreshFriends.Hours,
                RetryTimeRefreshFriendsMin = settings.FriendsOptions.RetryTimeRefreshFriends.Minutes,
                RetryTimeRefreshFriendsSec = settings.FriendsOptions.RetryTimeRefreshFriends.Seconds,
                AllowedRemovalPercentage = settings.FriendsOptions.AllowedRemovalPercentage,

                //messages options
                GetMessagesFromThoseConnectedToMessenger = settings.MessageOptions.GetMessagesFromThoseConnectedToMessenger,
                RetryTimeSendNewFriendHour = settings.MessageOptions.RetryTimeSendNewFriend.Hours,
                RetryTimeSendNewFriendMin = settings.MessageOptions.RetryTimeSendNewFriend.Minutes,
                RetryTimeSendNewFriendSec = settings.MessageOptions.RetryTimeSendNewFriend.Seconds,
                RetryTimeSendRequestFriendshipsHour = settings.FriendsOptions.RetryTimeSendRequestFriendships.Hours,
                RetryTimeSendRequestFriendshipsMin = settings.FriendsOptions.RetryTimeSendRequestFriendships.Minutes,
                RetryTimeSendRequestFriendshipsSec = settings.FriendsOptions.RetryTimeSendRequestFriendships.Seconds,
                RetryTimeSendUnansweredHour = settings.MessageOptions.RetryTimeSendUnanswered.Hours,
                RetryTimeSendUnansweredMin = settings.MessageOptions.RetryTimeSendUnanswered.Minutes,
                RetryTimeSendUnansweredSec = settings.MessageOptions.RetryTimeSendUnanswered.Seconds,
                UnansweredDelay = settings.MessageOptions.UnansweredDelay,

                //limits options
                CountMaxFriends = settings.LimitsOptions.CountMaxFriends,
                CountMinFriends = settings.LimitsOptions.CountMinFriends,

                //delete friends settings
                DialogIsOverTimer = settings.DeleteFriendsOptions.DialogIsOver == null ? 0 : settings.DeleteFriendsOptions.DialogIsOver.Timer,
                EnableDialogIsOver = settings.DeleteFriendsOptions.DialogIsOver != null && settings.DeleteFriendsOptions.DialogIsOver.IsEnabled,
                IsAddedToGroupsAndPagesTimer = settings.DeleteFriendsOptions.IsAddedToGroupsAndPages == null ? 0 : settings.DeleteFriendsOptions.IsAddedToGroupsAndPages.Timer,
                EnableIsAddedToGroupsAndPages = settings.DeleteFriendsOptions.IsAddedToGroupsAndPages != null && settings.DeleteFriendsOptions.IsAddedToGroupsAndPages.IsEnabled,
                IsWinkTimer = settings.DeleteFriendsOptions.IsWink == null ? 0 : settings.DeleteFriendsOptions.IsWink.Timer,
                EnableIsWink = settings.DeleteFriendsOptions.IsWink != null && settings.DeleteFriendsOptions.IsWink.IsEnabled,
                IsWinkFriendsOfFriendsTimer = settings.DeleteFriendsOptions.IsWinkFriendsOfFriends == null ? 0 : settings.DeleteFriendsOptions.IsWinkFriendsOfFriends.Timer,
                EnableIsWinkFriendsOfFriends = settings.DeleteFriendsOptions.IsWinkFriendsOfFriends != null && settings.DeleteFriendsOptions.IsWinkFriendsOfFriends.IsEnabled,
                DeletionFriendTimer = settings.DeleteFriendsOptions.DeletionFriendTimer,

                //winks
                RetryTimeForWinkFriendsHour = settings.WinkOptions.RetryTimeForWinkFriends == null ? 0 : settings.WinkOptions.RetryTimeForWinkFriends.Hours,
                RetryTimeForWinkFriendsMin = settings.WinkOptions.RetryTimeForWinkFriends == null ? 0 : settings.WinkOptions.RetryTimeForWinkFriends.Minutes,
                RetryTimeForWinkFriendsSec = settings.WinkOptions.RetryTimeForWinkFriends == null ? 0 : settings.WinkOptions.RetryTimeForWinkFriends.Seconds,
                ConsiderGeoForWinkFriends = settings.WinkOptions.ConsiderGeoForWinkFriends,
                RetryTimeForWinkFriendsFriendsHour = settings.WinkOptions.RetryTimeForWinkFriendsFriends == null ? 0 : settings.WinkOptions.RetryTimeForWinkFriendsFriends.Hours,
                RetryTimeForWinkFriendsFriendsMin = settings.WinkOptions.RetryTimeForWinkFriendsFriends == null ? 0 : settings.WinkOptions.RetryTimeForWinkFriendsFriends.Minutes,
                RetryTimeForWinkFriendsFriendsSec = settings.WinkOptions.RetryTimeForWinkFriendsFriends == null ? 0 : settings.WinkOptions.RetryTimeForWinkFriendsFriends.Seconds,
                ConsiderGeoForWinkFriendsFriends = settings.WinkOptions.ConsiderGeoForWinkFriendsFriends,
                RetryTimeForWinkBackHour = settings.WinkOptions.RetryTimeForWinkBack == null ? 0 : settings.WinkOptions.RetryTimeForWinkBack.Hours,
                RetryTimeForWinkBackMin = settings.WinkOptions.RetryTimeForWinkBack == null ? 0 : settings.WinkOptions.RetryTimeForWinkBack.Minutes,
                RetryTimeForWinkBackSec = settings.WinkOptions.RetryTimeForWinkBack == null ? 0 : settings.WinkOptions.RetryTimeForWinkBack.Seconds
            });
        }
        public List <AnalysisFriendData> Handle(GetAnalisysFriendsQuery query)
        {
            try
            {
                var analisisFriends = _context.AnalisysFriends
                                      .Where(model => model.Status == StatusesFriend.ToAnalys)
                                      .Where(model => !model.AccountWithFriend.IsDeleted)
                                      .GroupBy(model => model.AccountId)
                                      .Select(model => model.OrderBy(dbModel => dbModel.AddedDateTime).Take(2)).ToList();

                var result = new List <AnalysisFriendData>();

                foreach (var analysisFriendDbModelList in analisisFriends)
                {
                    foreach (var analysisFriendDbModel in analysisFriendDbModelList)
                    {
                        var dbModel = analysisFriendDbModel;
                        var account = _context.Accounts.FirstOrDefault(model => model.Id == dbModel.AccountId);

                        if (account == null || account.GroupSettingsId == null)
                        {
                            continue;
                        }

                        var settingsModel =
                            new GetSettingsByGroupSettingsIdQueryHandler(_context).Handle(
                                new GetSettingsByGroupSettingsIdQuery
                        {
                            GroupSettingsId = (long)account.GroupSettingsId
                        });

                        if (settingsModel == null)
                        {
                            continue;
                        }

                        if (settingsModel.GeoOptions.Cities == null && settingsModel.GeoOptions.Gender == null && settingsModel.GeoOptions.Countries == null) //replace only geo fields
                        {
                            continue;
                        }

                        result.Add(new AnalysisFriendData
                        {
                            FacebookId            = analysisFriendDbModel.FacebookId,
                            AccountId             = analysisFriendDbModel.AccountId,
                            FriendName            = analysisFriendDbModel.FriendName,
                            Id                    = analysisFriendDbModel.Id,
                            AddedToAnalysDateTime = analysisFriendDbModel.AddedDateTime,
                            Type                  = analysisFriendDbModel.Type,
                            Status                = analysisFriendDbModel.Status
                        });
                    }
                }

                return(result);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Example #4
0
        public TimeSpan GetTimeSpanByFunctionName(FunctionName functionName, long groupSettingsId)
        {
            var groupSettings =
                new GetSettingsByGroupSettingsIdQueryHandler(new DataBaseContext()).Handle(
                    new GetSettingsByGroupSettingsIdQuery
            {
                GroupSettingsId = groupSettingsId
            });

            if (groupSettings == null)
            {
                return(new TimeSpan(0, 1, 0));
            }
            switch (functionName)
            {
            case FunctionName.SendMessageToNewFriends:
            {
                var sendMessageToNewFriendsTimeModel = groupSettings.MessageOptions.RetryTimeSendNewFriend;
                return(new TimeSpan(sendMessageToNewFriendsTimeModel.Hours, sendMessageToNewFriendsTimeModel.Minutes,
                                    sendMessageToNewFriendsTimeModel.Seconds));
            }

            case FunctionName.SendMessageToUnanswered:
            {
                var sendMessageToUnansweredTimeModel = groupSettings.MessageOptions.RetryTimeSendUnanswered;
                return(new TimeSpan(sendMessageToUnansweredTimeModel.Hours, sendMessageToUnansweredTimeModel.Minutes,
                                    sendMessageToUnansweredTimeModel.Seconds));
            }

            case FunctionName.SendMessageToUnread:
            {
                var sendMessageToUnreadTimeModel = groupSettings.MessageOptions.RetryTimeSendUnread;
                return(new TimeSpan(sendMessageToUnreadTimeModel.Hours, sendMessageToUnreadTimeModel.Minutes,
                                    sendMessageToUnreadTimeModel.Seconds));
            }

            case FunctionName.RefreshFriends:
            {
                var refreshFriendsTimeModel = groupSettings.FriendsOptions.RetryTimeRefreshFriends;
                return(new TimeSpan(refreshFriendsTimeModel.Hours, refreshFriendsTimeModel.Minutes,
                                    refreshFriendsTimeModel.Seconds));
            }

            case FunctionName.GetNewFriendsAndRecommended:
            {
                var getNewFriendsAndRecommendedTimeModel = groupSettings.FriendsOptions.RetryTimeGetNewAndRecommendedFriends;
                return(new TimeSpan(getNewFriendsAndRecommendedTimeModel.Hours,
                                    getNewFriendsAndRecommendedTimeModel.Minutes,
                                    getNewFriendsAndRecommendedTimeModel.Seconds));
            }

            case FunctionName.ConfirmFriendship:
            {
                var confirmFriendshipTimeModel = groupSettings.FriendsOptions.RetryTimeConfirmFriendships;
                return(new TimeSpan(confirmFriendshipTimeModel.Hours, confirmFriendshipTimeModel.Minutes,
                                    confirmFriendshipTimeModel.Seconds));
            }

            case FunctionName.SendRequestFriendship:
            {
                var sendRequestFriendshipTimeModel = groupSettings.FriendsOptions.RetryTimeSendRequestFriendships;
                return(new TimeSpan(sendRequestFriendshipTimeModel.Hours, sendRequestFriendshipTimeModel.Minutes,
                                    sendRequestFriendshipTimeModel.Seconds));
            }

            case FunctionName.JoinTheNewGroupsAndPages:
            {
                return(new TimeSpan(0, 0, 10));
            }

            case FunctionName.InviteToGroups:
            {
                var inviteToGroupsTimeModel = groupSettings.CommunityOptions.RetryTimeInviteTheGroups;
                return(new TimeSpan(inviteToGroupsTimeModel.Hours, inviteToGroupsTimeModel.Minutes,
                                    inviteToGroupsTimeModel.Seconds));
            }

            case FunctionName.InviteToPages:
            {
                var inviteToPagesTimeModel = groupSettings.CommunityOptions.RetryTimeInviteThePages;
                return(new TimeSpan(inviteToPagesTimeModel.Hours, inviteToPagesTimeModel.Minutes,
                                    inviteToPagesTimeModel.Seconds));
            }

            case FunctionName.Wink:
            {
                var winkFriendsTimeModel = groupSettings.WinkOptions.RetryTimeForWinkFriends;
                return(new TimeSpan(winkFriendsTimeModel.Hours, winkFriendsTimeModel.Minutes,
                                    winkFriendsTimeModel.Seconds));
            }

            case FunctionName.WinkFriendFriends:
            {
                var winkFriendsFriendsTimeModel = groupSettings.WinkOptions.RetryTimeForWinkFriendsFriends;
                return(new TimeSpan(winkFriendsFriendsTimeModel.Hours, winkFriendsFriendsTimeModel.Minutes,
                                    winkFriendsFriendsTimeModel.Seconds));
            }

            case FunctionName.WinkBack:
            {
                var winkBackTimeModel = groupSettings.WinkOptions.RetryTimeForWinkBack;
                return(new TimeSpan(winkBackTimeModel.Hours, winkBackTimeModel.Minutes,
                                    winkBackTimeModel.Seconds));
            }

            default:
                throw new ArgumentOutOfRangeException("functionName");
            }
        }