private PreviewProfileModel formatProfileData(int userId, ProfileStatisticsModel profileStatisticsModel)
        {
            var db = new MyDBModels.DB();
            var countUnreadMessages = 0;
            var countGroups         = 0;
            var dateUtils           = new DateUtils();

            var userModel    = db.user.Where(u => u.UserId == userId).First();
            var profileModel = db.profile.Where(p => p.ProfileId == userModel.ProfileId).First();

            var communicationIdArray    = userModel.CommunicationIdArray;
            var communicationDataAccess = new CommunicationDataAccess();

            communicationIdArray.ToList().ForEach(delegate(int communicationId)
            {
                var communicationModelDb = db.communication.Where(c => c.CommunicationId == communicationId).First();
                if (IsUnreadCommunication(communicationModelDb.MessageIdArray, profileModel.ProfileId))
                {
                    countUnreadMessages++;
                }
            });

            PreviewProfileModel previewProfileModel = new PreviewProfileModel();

            previewProfileModel.FullName              = String.Format("{0} {1}", profileModel.Name, profileModel.LastName);
            previewProfileModel.PhotoUrl              = profileModel.PhotoUrl;
            previewProfileModel.TimeLastActive        = profileModel.TimeLastActive;//dateUtils.calculateStateLastActivity(profileModel.TimeLastActive);
            previewProfileModel.CountRequestedFriends = userModel.FriendPossibleIdArray.Count();;
            previewProfileModel.CountUnreadMessages   = countUnreadMessages;
            previewProfileModel.CountRequestedGroups  = countGroups;
            previewProfileModel.ProfileStatistics     = profileStatisticsModel;

            return(previewProfileModel);
        }
        public PreviewProfileModel previewProfile(int userId, int typePeriod)
        {
            /*var db = new MyDBModels.DB();
             *
             * PreviewProfileModel previewProfileModel = new PreviewProfileModel();
             *
             * var userModel = db.user.Where(u => u.UserId == userId).First();
             * var profileModel = db.profile.Where(p => p.ProfileId == userModel.ProfileId).First();
             *
             * var profileStatistics = db.profileStatistics.Where(ps => ps.ProfileStatisticsId == profileModel.ProfileStatisticsId).First();
             *
             * ProfileStatisticsModel profileStatisticsModel = new ProfileStatisticsModel();
             *
             * profileStatisticsModel.CountDistanceTotal = profileStatistics.CountDistanceTotal;
             * profileStatisticsModel.MiddleSpeedTotal = profileStatistics.MiddleSpeedTotal;
             * profileStatisticsModel.TimeInTripTotal = (int) profileStatistics.TimeInTripTotal.TotalSeconds;
             * profileStatisticsModel.CaloriesTotal = profileStatistics.CaloriesTotal;
             * profileStatisticsModel.CountDangerousSituation = profileStatistics.CountDangerousSituation;
             * profileStatisticsModel.CountAttemptedTheft = profileStatistics.CountAttemptedTheft;
             * profileStatisticsModel.EveryDayProfileStatistics = statisticsByPeriod(userId, typePeriod);
             *
             */
            ProfileStatisticsModel profileStatisticsModel = formatTotalStatisitcs(userId, statisticsByPeriod(userId, typePeriod));

            return(formatProfileData(userId, profileStatisticsModel));
        }
        private ProfileStatisticsModel formatTotalStatisitcs(int userId, List <EveryDayProfileStatisticsModel> everyDayList)
        {
            var db = new MyDBModels.DB();


            var userModel    = db.user.Where(u => u.UserId == userId).First();
            var profileModel = db.profile.Where(p => p.ProfileId == userModel.ProfileId).First();

            var profileStatistics = db.profileStatistics.Where(ps => ps.ProfileStatisticsId == profileModel.ProfileStatisticsId).First();

            ProfileStatisticsModel profileStatisticsModel = new ProfileStatisticsModel();

            profileStatisticsModel.CountDistanceTotal        = profileStatistics.CountDistanceTotal;
            profileStatisticsModel.MiddleSpeedTotal          = profileStatistics.MiddleSpeedTotal;
            profileStatisticsModel.TimeInTripTotal           = (int)profileStatistics.TimeInTripTotal.TotalSeconds;
            profileStatisticsModel.CaloriesTotal             = profileStatistics.CaloriesTotal;
            profileStatisticsModel.CountDangerousSituation   = profileStatistics.CountDangerousSituation;
            profileStatisticsModel.CountAttemptedTheft       = profileStatistics.CountAttemptedTheft;
            profileStatisticsModel.EveryDayProfileStatistics = new List <EveryDayProfileStatisticsModel>(everyDayList);

            return(profileStatisticsModel);
        }