コード例 #1
0
        //Postpaid ve prepaid hatlar icin
        public PartialViewResult TopCalledNumbers(string id)
        {
            var model   = new EnCokArananArkadaslarModel();
            var handler = new CokArananNumaralarHandler();

            model.serviceData = id == null?handler.PrepareData() : handler.PrepareData(id);

            //Birinci join, servisten gelen MSISDN ler icerisinde user'in arkadaslari olup
            //olmadigini joinliyor. Ayni msisdn birden fazla arkadas kaydina denk gelebilecegi
            //icin burada outer join yapiyoruz ve merge etmeden join edilmis kayitlari aliyoruz
            //ki duplicate kayit gelmesin.
            var friendsTableJoin = (from u in model.serviceData
                                    join p in UserFb.Friends on u.Msisdn equals p.Msisdn
                                    into a
                                    from f in a.DefaultIfEmpty(new UserFbFriendModel {
                Msisdn = u.Msisdn
            })
                                    select f).ToList();

            IList <EnCokArananlarMergeModel> mergeModel = (from u in friendsTableJoin
                                                           where u.IsClickToCallInvisible == false && u.IsClickToCallBlock == false
                                                           select new EnCokArananlarMergeModel
            {
                FbId = u.FbId,
                FirstNameView = u.FirstName == null ? String.Empty : LIB.FormatHelper.NameCharLimit(u.FirstName.ToString(), GlobalVars.NameCharLimit, GlobalVars.NameExtChars),
                LastNameView = u.LastName == null ? String.Empty : LIB.FormatHelper.NameCharLimit(u.LastName.ToString(), GlobalVars.NameCharLimit, GlobalVars.NameExtChars),
                Msisdn = u.Msisdn,
                PictureLink = u.PictureLink,
                UserId = u.UserId,
                IsClickToCallBlock = u.IsClickToCallBlock,
                IsClickToCallInvisible = u.IsClickToCallInvisible
            }).Take(4).ToList();

            return(PartialView(mergeModel));
        }
コード例 #2
0
        //Postpaid ve prepaid hatlar icin
        public PartialViewResult TopCalledNumbers(string invoiceNumber)
        {
            var model   = new EnCokArananArkadaslarModel();
            var handler = new CokArananNumaralarHandler();

            model.serviceData = invoiceNumber == null?handler.PrepareData() : handler.PrepareData(invoiceNumber);

            try
            {
                foreach (var item in model.serviceData)
                {
                    if (item.Msisdn == "topCalledNumbers")
                    {
                        model.serviceData = null;
                        break;
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }

            //Subscription sorgusu yapan ufak kisim.
            //özellikle try-catch içerisinde tutuyoruz ki bu küçük sorgu
            //patlasa bile asıl modül çalışmaya devam etsin.
            try
            {
                var subscriptionHandler = new CallDetailHandler();
                var subscriptionStatus  = subscriptionHandler.GetSubscriptionStatus((Com.Enums.Parameter.UserType)UserFb.Data.UserType);

                session.IsSubscriptionActive = subscriptionStatus;
            }
            catch (Exception) { }

            //Birinci join, servisten gelen MSISDN ler icerisinde user'in arkadaslari olup
            //olmadigini joinliyor. Ayni msisdn birden fazla arkadas kaydina denk gelebilecegi
            //icin burada outer join yapiyoruz ve merge etmeden join edilmis kayitlari aliyoruz
            //ki duplicate kayit gelmesin.
            var friendsTableJoin = (from u in model.serviceData
                                    join p in UserFb.Friends on u.Msisdn equals p.Msisdn
                                    into a
                                    from f in a.DefaultIfEmpty(new UserFbFriendModel {
                Msisdn = u.Msisdn
            })
                                    select f).ToList();

            IList <EnCokArananlarMergeModel> mergeModel = (from u in friendsTableJoin
                                                           where u.IsClickToCallInvisible == false && u.IsClickToCallBlock == false
                                                           select new EnCokArananlarMergeModel
            {
                FbId = u.FbId,
                FirstNameView = u.FirstName == null ? String.Empty : LIB.FormatHelper.NameCharLimit(u.FirstName.ToString(), GlobalVars.NameCharLimit, GlobalVars.NameExtChars),
                LastNameView = u.LastName == null ? String.Empty : LIB.FormatHelper.NameCharLimit(u.LastName.ToString(), GlobalVars.NameCharLimit, GlobalVars.NameExtChars),
                Msisdn = u.Msisdn,
                PictureLink = u.PictureLink,
                UserId = u.UserId,
                IsClickToCallBlock = u.IsClickToCallBlock,
                IsClickToCallInvisible = u.IsClickToCallInvisible
            }).Take(5).ToList();

            return(PartialView(mergeModel));
        }