Пример #1
0
 public MemberForm(MemberMode i_mode, Member i_member)
 {
     InitializeComponent();
     mode   = i_mode;
     member = i_member;
     this.loadForm();
 }
Пример #2
0
        /// <summary>
        /// Parse member from internet based on given member id, mode, and page number.
        /// </summary>
        /// <param name="memberId"></param>
        /// <param name="mode"></param>
        /// <param name="page"></param>
        /// <returns></returns>
        public NijieMember ParseMember(int memberId, MemberMode mode, int page)
        {
            HtmlDocument doc = null;

            try
            {
                canOperate();
                NijieMember member = new NijieMember(memberId, mode, page);
                var         result = getPage(member.MemberUrl);
                var         res    = result.Item2;
                if (Util.IsRedirected(res.ResponseUri.ToString(), member.MemberUrl, ignoreProtocol: true))
                {
                    throw new NijieException(string.Format("Redirected to another page: {0} ==> {1}", member.MemberUrl, res.ResponseUri.ToString()), NijieException.MEMBER_REDIR);
                }

                doc = result.Item1;

                return(ParseMember(doc, member, mode));
            }
            catch (NijieException)
            {
                throw;
            }
            catch (Exception ex)
            {
                if (doc != null)
                {
                    var filename = String.Format("Dump for Member {0} Mode {1}.html", memberId, mode.ToString());
                    Log.Debug("Dumping member page to: " + filename);
                    doc.Save(filename);
                }

                throw new NijieException(String.Format("Error when processing member: {0} ==> {1}", memberId, ex.Message), ex, NijieException.MEMBER_UNKNOWN_ERROR);
            }
        }
Пример #3
0
        /// <summary>
        /// Parse member from internet based on given member id, mode, and page number.
        /// </summary>
        /// <param name="memberId"></param>
        /// <param name="mode"></param>
        /// <param name="page"></param>
        /// <returns></returns>
        public NijieMember ParseMember(int memberId, MemberMode mode, int page)
        {
            HtmlDocument doc = null;
            try
            {
                canOperate();
                NijieMember member = new NijieMember(memberId, mode, page);
                var result = getPage(member.MemberUrl);
                var res = result.Item2;
                if (Util.IsRedirected(res.ResponseUri.ToString(), member.MemberUrl, ignoreProtocol: true))
                {
                    throw new NijieException(string.Format("Redirected to another page: {0} ==> {1}", member.MemberUrl, res.ResponseUri.ToString()), NijieException.MEMBER_REDIR);
                }

                doc = result.Item1;

                return ParseMember(doc, member, mode);
            }
            catch (NijieException)
            {
                throw;
            }
            catch (Exception ex)
            {
                if (doc != null)
                {
                    var filename = String.Format("Dump for Member {0} Mode {1}.html", memberId, mode.ToString());
                    Log.Debug("Dumping member page to: " + filename);
                    doc.Save(filename);
                }

                throw new NijieException(String.Format("Error when processing member: {0} ==> {1}", memberId, ex.Message), ex, NijieException.MEMBER_UNKNOWN_ERROR);
            }
        }
Пример #4
0
        /// <summary>
        /// Parse member from html document.
        /// </summary>
        /// <param name="doc"></param>
        /// <param name="member"></param>
        /// <param name="mode"></param>
        /// <returns></returns>
        public NijieMember ParseMember(HtmlDocument doc, NijieMember member, MemberMode mode)
        {
            ParseMemberProfile(doc, member);

            if (mode == MemberMode.Images || mode == MemberMode.Doujin)
                ParseMemberImages(doc, member);
            else
                ParseMemberBookmark(doc, member);

            member.Status = String.Format("Completed, found {0} images", member.Images.Count);

            return member;
        }
        private void addJobForMember(int memberId, MemberMode mode, string message = "")
        {
            var newJob = new JobDownloadViewModel();

            newJob.JobType    = JobType.Member;
            newJob.MemberId   = memberId;
            newJob.Status     = JobStatus.Added;
            newJob.MemberMode = mode;
            var result = ShowAddJobDialog(newJob, message: message);

            if (result != null)
            {
                AddJob(result);
            }
        }
Пример #6
0
        /// <summary>
        /// Parse member from html document.
        /// </summary>
        /// <param name="doc"></param>
        /// <param name="member"></param>
        /// <param name="mode"></param>
        /// <returns></returns>
        public NijieMember ParseMember(HtmlDocument doc, NijieMember member, MemberMode mode)
        {
            ParseMemberProfile(doc, member);

            if (mode == MemberMode.Images || mode == MemberMode.Doujin)
            {
                ParseMemberImages(doc, member);
            }
            else
            {
                ParseMemberBookmark(doc, member);
            }

            member.Status = String.Format("Completed, found {0} images", member.Images.Count);

            return(member);
        }
Пример #7
0
        public static string GenerateMemberUrl(int memberId, MemberMode mode, int page)
        {
            var prefix = "";

            switch (mode)
            {
            case MemberMode.Images:
                prefix = "//nijie.info/members_illust.php?p=" + page + "&id=";
                break;

            case MemberMode.Doujin:
                prefix = "//nijie.info/members_dojin.php?id=";
                break;

            case MemberMode.Bookmark:
                prefix = "//nijie.info/user_like_illust_view.php?p=" + page + "&id=";
                break;
            }

            return(Util.FixUrl(prefix + memberId, Nijie.ROOT_DOMAIN, Properties.Settings.Default.UseHttps));
        }
Пример #8
0
        private MemberAccess GetMemberAccess(Type type, object obj, bool isStatic)
        {
            // 1. Get the member name.
            MemberInfo[] members = null;
            members = type.GetMember(MemberName, BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.IgnoreCase);

            MemberInfo result = null;

            // 2. Validate: Property does not exist ?
            if (members == null || members.Length == 0)
            {
                throw BuildRunTimeException("Property does not exist : '" + MemberName + "' ");
            }

            // 3. Get the first member.
            result = members[0];
            string       memberNameCaseIgnorant = result.Name;
            MemberMode   mode   = isStatic ? MemberMode.CustObjMethodStatic : MemberMode.CustObjMethodInstance;
            MemberAccess member = new MemberAccess(mode);

            member.DataType   = type;
            member.Instance   = obj;
            member.MemberName = MemberName;

            // Property.
            if (result.MemberType == MemberTypes.Property)
            {
                member.Name     = type.Name;
                member.Property = type.GetProperty(memberNameCaseIgnorant);
            }
            // Method
            else if (result.MemberType == MemberTypes.Method)
            {
                string name = (VariableExp.IsNodeType(NodeTypes.SysVariable)) ? ((VariableExpr)VariableExp).Name : null;
                member.Name   = name;
                member.Method = type.GetMethod(memberNameCaseIgnorant);
            }
            return(member);
        }
 private void addJobForMember(int memberId, MemberMode mode, string message = "")
 {
     var newJob = new JobDownloadViewModel();
     newJob.JobType = JobType.Member;
     newJob.MemberId = memberId;
     newJob.Status = JobStatus.Added;
     newJob.MemberMode = mode;
     var result = ShowAddJobDialog(newJob, message: message);
     if (result != null)
     {
         AddJob(result);
     }
 }
Пример #10
0
 /// <summary>
 /// Initialize
 /// </summary>
 /// <param name="mode"></param>
 public MemberAccess(MemberMode mode)
 {
     Mode = mode;
 }
Пример #11
0
 /// <summary>
 /// Initialize
 /// </summary>
 /// <param name="exists"></param>
 /// <param name="name"></param>
 /// <param name="mode"></param>
 public FunctionLookupResult(bool exists, string name, MemberMode mode)
 {
     Exists       = exists;
     Name         = name;
     FunctionMode = mode;
 }
Пример #12
0
 /// <summary>
 /// Initialize
 /// </summary>
 /// <param name="exists"></param>
 /// <param name="name"></param>
 /// <param name="mode"></param>
 public FunctionLookupResult(bool exists, string name, MemberMode mode)
 {
     Exists = exists;
     Name = name;
     FunctionMode = mode;
 }
Пример #13
0
 /// <summary>
 /// Initialize
 /// </summary>
 /// <param name="mode"></param>
 public MemberAccess(MemberMode mode)
 {
     Mode = mode;
 }
Пример #14
0
 public NijieMember(int memberId, MemberMode mode, int page = 0)
 {
     this.MemberId = memberId;
     this.Mode     = mode;
     this.Page     = page;
 }
Пример #15
0
        public PartialViewResult popView(string mfid, string userId)
        {
            MemberMode    model   = new MemberMode();
            marketShopApp shopApp = new marketShopApp();


            V_CRM_MEMBER_APPTableAdapter ad = new V_CRM_MEMBER_APPTableAdapter();
            var table = ad.GetDataByMFID(mfid);

            if (table.Count > 0)
            {
                var row = table[0];
                model = new MemberMode()
                {
                    adder            = row.MEMBER_ADDR,
                    LAST_BUY_DATE    = row.LAST_BUY_DATE,
                    LAST_BUY_MODEL   = row.LAST_BUY_MODEL,
                    LAST_BUY_QTY     = (int)row.LAST_BUY_QTY,
                    LAST_INSHOP      = shopApp.getShopName(row.LAST_INSHOP_CODE),
                    LAST_INSHOP_TIME = row.LAST_INSHOP_TIME,
                    MEMBER_NO        = row.MEMBER_NO,
                    MF_MEMBER_ID     = row.MF_MEMBER_ID,
                    MEMO             = row.MEMO,
                    name             = row.MEMBER_NAME,
                    phoneNumber      = row.MOBILE,
                    weiChat          = row.WECHAT_NO,
                    VISIT_COUNT      = (int)row.VISIT_COUNT,
                    picRUL           = row.IsIMGFACETIMENull() ? "" : row.IMGFACETIME.Replace("/data/upload", "https://iretailerapp.flnet.com/MessagesQC"),
                    age         = (int)row.AGE, MemberType = row.CG_TYPE_NAME, regShop = shopApp.getShopName(row.REG_SHOP_CODE),
                    regShopCode = row.REG_SHOP_CODE
                };
                if (model.regShopCode == null)
                {
                    List <marketSalesShopEntity> shops = shopApp.getShopByUserId(userId);
                    if (shops.Count > 0)
                    {
                        model.regShop     = shops[0].SHOP_NAME;
                        model.regShopCode = shops[0].SHOP_CODE;
                    }
                }
                model.IOList = new List <Member_IOSHOPMode>();
                V_CRM_MEMBER_IOSHOP_LOG_APPTableAdapter IOAD = new V_CRM_MEMBER_IOSHOP_LOG_APPTableAdapter();
                var iologs = IOAD.GetDataByMFID(row.MF_MEMBER_ID);
                foreach (var item in iologs)
                {
                    model.IOList.Add(new Member_IOSHOPMode()
                    {
                        SHOP_NAME = item.SHOP_NAME, Time = item.VISIT_TIME
                    });
                }
                model.ByList = new List <Member_ByMode>();
                V_CRM_MEMBER_HISSALES_APPTableAdapter byAD = new V_CRM_MEMBER_HISSALES_APPTableAdapter();
                var bylogs = byAD.GetData(row.MOBILE);
                foreach (var item in bylogs)
                {
                    model.ByList.Add(new Member_ByMode()
                    {
                        byTime = item.BUY_DATE, MAC = item.BUY_MODEL, qty = (int)item.BUY_QTY
                    });
                }
                model.lookMacsList = new List <string>();
                if (!row.IsFOLLOW_PRODUCTNull())
                {
                    model.lookMacsList.AddRange(row.FOLLOW_PRODUCT.Split(",".ToCharArray()));
                }
            }
            return(PartialView("POPView", model));
        }
Пример #16
0
        public static string GenerateMemberUrl(int memberId, MemberMode mode, int page)
        {
            var prefix = "";
            switch (mode)
            {
                case MemberMode.Images:
                    prefix = "//nijie.info/members_illust.php?id=";
                    break;

                case MemberMode.Doujin:
                    prefix = "//nijie.info/members_dojin.php?id=";
                    break;

                case MemberMode.Bookmark:
                    prefix = "//nijie.info/user_like_illust_view.php?p=" + page + "&id=";
                    break;
            }

            return Util.FixUrl(prefix + memberId, Nijie.ROOT_DOMAIN, Properties.Settings.Default.UseHttps);
        }
Пример #17
0
 public NijieMember(int memberId, MemberMode mode, int page = 0)
 {
     this.MemberId = memberId;
     this.Mode = mode;
     this.Page = page;
 }