Esempio n. 1
0
 /// <summary>
 /// 检查是否在配送范围
 /// </summary>
 /// <param name="model"></param>
 /// <param name="shop"></param>
 /// <param name="shopTakeOutInfo"></param>
 public static void CheckIsInScope(this MemberAddress model, Shop shop, ShopTakeOutInfo toInfo)
 {
     if (!toInfo.IsInScope(shop, model.Latitude.Value, model.Longitude.Value))
     {
         throw new Exception("当前位置不在商家配送范围内");
     }
 }
Esempio n. 2
0
        public ActionResult Modify(MemberAddress ad)
        {
            string phone = Session["mem_phone"].ToString();

            ShopBusinessLogic.LoginMember loginMember = new ShopBusinessLogic.LoginMember();
            string old_ad     = ad.old_address;
            string old_ad_tag = ad.old_address_tag;
            string new_ad     = ad.new_address;
            string new_ad_tag = ad.new_address_tag;

            if (loginMember.ModifyMemberAddress(phone, old_ad, new_ad, old_ad_tag, new_ad_tag))
            {
                var now_address_list = loginMember.ShowMemberAddress(phone).Select(address_info => new MemberAddress()
                {
                    address     = address_info.address,
                    address_tag = address_info.address_tag,
                }).ToList();
                var resView = new MemberAddress()
                {
                    addresses = now_address_list,
                };
                return(PartialView("AddressPart1", resView));
            }
            else
            {
                return(PartialView("AddressPart1", ad));
            }
        }
Esempio n. 3
0
 void registerPropertyBinding(string origNode, string origProp, MemberAddress ma)
 {
     if (!context.PropertyBindings.ContainsKey(origNode))
     {
         context.PropertyBindings [origNode] = new Dictionary <string, MemberAddress> ();
     }
     context.PropertyBindings [origNode] [origProp] = ma;
 }
Esempio n. 4
0
        /// <summary>
        /// 获取用户地址所对应的坐标
        /// </summary>
        /// <param name="memberAddress"></param>
        /// <returns></returns>
        public static bool GetCoordinates(this MemberAddress memberAddress)
        {
            var coordinates = BaiduMapUtil.GetGeoCoder(memberAddress.GetAddress());

            if (!coordinates.HasValue)
            {
                return(false);
            }
            memberAddress.Latitude  = coordinates.Value.lat;
            memberAddress.Longitude = coordinates.Value.lng;
            return(true);
        }
Esempio n. 5
0
        /// <summary>
        /// 检查是否在配送范围
        /// </summary>
        /// <param name="model"></param>
        /// <param name="db"></param>
        /// <param name="shop"></param>
        public static void CheckIsInScope(this MemberAddress model, ShopDbContext db, Shop shop)
        {
            ShopTakeOutInfo toInfo = db.Query <ShopTakeOutInfo>()
                                     .Where(m => !m.IsDel)
                                     .Where(m => m.ShopId == shop.Id)
                                     .FirstOrDefault();

            if (toInfo == null)
            {
                throw new Exception("外卖基础设置不存在");
            }
            model.CheckIsInScope(shop, toInfo);
        }
        public IActionResult Get(int id)
        {
            MemberAddress memberaddress = _memberaddressrequest.GetMemberAddressEntry(id);

            if (memberaddress != null)
            {
                return(new JsonResult(_objectmapper.Map <MemberAddressViewModel>(memberaddress), DefaultJsonSettings));
            }
            else
            {
                return(NotFound(new { Error = String.Format("Member Address ID {0} has not been found", id) }));
            }
        }
Esempio n. 7
0
        public APIResult AddAddress([FromBody] AddAddressArgsModel args)
        {
            if (!args.ShopId.HasValue)
            {
                throw new Exception("ShopId不能为空");
            }
            if (string.IsNullOrEmpty(args.Name))
            {
                throw new Exception("姓名不能为空");
            }
            if (string.IsNullOrEmpty(args.Detail))
            {
                throw new Exception("详细地址不能为空");
            }
            if (string.IsNullOrEmpty(args.Phone))
            {
                throw new Exception("手机号码不能为空");
            }
            int memberId = GetMemberId();
            var model    = new MemberAddress()
            {
                Name     = args.Name,
                MemberId = memberId,
                Detail   = args.Detail,
                Sex      = args.Sex,
                Province = args.Province,
                City     = args.City,
                Area     = args.Area,
                IsUsed   = true,
                Phone    = args.Phone,
                AddIp    = GetIp(),
                AddTime  = DateTime.Now
            };


            CheckIsInScope(model, args.ShopId.Value, args.IsConglomeration.Equals(2));

            var query = db.Query <MemberAddress>()
                        .Where(m => m.MemberId == memberId)
                        .Where(m => !m.IsDel && m.IsUsed)
                        .FirstOrDefault();

            if (query != null)
            {
                query.IsUsed = false;
            }

            db.AddTo(model);
            db.SaveChanges();
            return(Success());
        }
Esempio n. 8
0
 public ListAddressModel(MemberAddress model)
 {
     Id         = model.Id;
     Address    = model.Address;
     IsDefault  = model.IsDefault;
     Contacts   = model.Contacts;
     Phone      = model.Phone;
     RegionName = model.RegionName.Replace(",", "");
     Postcode   = model.Postcode;
     Province   = model.Province;
     City       = model.City;
     District   = model.District;
     Street     = model.Street;
 }
Esempio n. 9
0
        private void AddUpdateAddress()
        {
            MemberAddress ad = new MemberAddress(0, sentaAddressTextbox.Text, (int)numOfMagText.Value, (int)numOfMagText.Value, categoryCombo.SelectedIndex);

            if (memberID != 0)
            {
                using (MemberInfo mem = new MemberInfo(true))
                {
                    mem.ID = memberID;
                    mem.AddAddress(ad);
                    mem.SetAddresses(memberID);
                    setAddresses(mem.sentAddress);
                }
            }
        }
Esempio n. 10
0
        /// <summary>
        /// 检查是否在配送范围
        /// </summary>
        /// <param name="model"></param>
        /// <param name="shopId"></param>
        /// <param name="IsConglomeration">是否为拼团添加地址</param>
        void CheckIsInScope(MemberAddress model, int shopId, bool IsConglomeration)
        {
            string address = model.GetAddress();

            if (model.GetCoordinates())
            {
                if (!IsConglomeration)
                {
                    model.CheckIsInScope(db, shopId);
                }
            }
            else
            {
                throw new Exception("当前地址无法获取相应的坐标");
            }
        }
        //[Authorize]
        public IActionResult Delete(int id)
        {
            MemberAddress memberaddress = _memberaddressrequest.GetMemberAddressEntry(id);

            if (memberaddress != null)
            {
                // remove the item to delete from the DbContext.
                _memberaddressrequest.DeleteMemberAddressEntry(id);

                // return an HTTP Status 200 (OK).
                return(new OkResult());
            }

            // return a HTTP Status 404 (Not Found) if we couldn't find a suitable Member.
            return(NotFound(new { Error = String.Format("Member Address ID {0} has not been found", id) }));
        }
        public void MustValidObject()
        {
            // Given
            var memberAddressExpected = new
            {
                _memberAddress.Address,
                _memberAddress.Neighborhood,
                _memberAddress.Zip
            };

            // When
            MemberAddress memberAddress = new MemberAddress(memberAddressExpected.Address,
                                                            memberAddressExpected.Neighborhood, memberAddressExpected.Zip);

            // Then
            memberAddressExpected.ToExpectedObject().ShouldMatch(memberAddress);
        }
Esempio n. 13
0
        /// <summary>
        /// Gets the draft VIP number.
        /// </summary>
        private void GetDraftVIPNumber()
        {
            string query = @"LEN(LTRIM(RTRIM(MemberInitial))) = 0 AND LEN(LTRIM(RTRIM(FirstName))) = 0 AND LEN(LTRIM(RTRIM(LastName))) = 0 AND LEN(LTRIM(RTRIM(REPLACE(FullName, ',', '')))) = 0 AND (LEN(LTRIM(RTRIM(FullName_Chs))) = 0 AND LEN(LTRIM(RTRIM(FullName_Cht))) = 0)";

            RT2020.DAL.MemberCollection oMemberList = RT2020.DAL.Member.LoadCollection(query, new string[] { "MemberNumber" }, true);
            foreach (RT2020.DAL.Member oMember in oMemberList)
            {
                query = @"MemberId = '" + oMember.MemberId.ToString() + @"' AND LEN(LTRIM(RTRIM(PhoneTag1Value))) = 0 AND LEN(LTRIM(RTRIM(PhoneTag2Value))) = 0
                 AND LEN(LTRIM(RTRIM(PhoneTag3Value))) = 0 AND LEN(LTRIM(RTRIM(PhoneTag4Value))) = 0 AND LEN(LTRIM(RTRIM(PhoneTag5Value))) = 0";
                MemberAddress oAddress = MemberAddress.LoadWhere(query);
                if (oAddress != null)
                {
                    txtTempVipNumber.Text      = oMember.MemberNumber;
                    txtTempVipNumber.ForeColor = Color.Blue;
                    break;
                }
            }
        }
Esempio n. 14
0
        /// <summary>
        /// Applies the member address.
        /// </summary>
        /// <param name="memberId">The member id.</param>
        private void ApplyMemberAddress(Guid memberId)
        {
            System.Guid   addrTypeId = GetAddressTypeId();
            string        query      = "MemberId = '" + memberId.ToString() + "' AND AddressTypeId = '" + addrTypeId.ToString() + "'";
            MemberAddress objAddress = MemberAddress.LoadWhere(query);

            if (objAddress == null)
            {
                objAddress               = new MemberAddress();
                objAddress.MemberId      = memberId;
                objAddress.AddressTypeId = addrTypeId;
            }

            objAddress.PhoneTag1      = GetPhoneTag(1); //Work
            objAddress.PhoneTag1Value = txtPhone1.Text;
            objAddress.PhoneTag2      = GetPhoneTag(2); //Home
            objAddress.PhoneTag2Value = txtPhone2.Text;
            objAddress.Save();
        }
Esempio n. 15
0
 // GET: Address
 public ActionResult Index()
 {
     if (Session["has_login"] == null)
     {
         return(Redirect("/Login"));
     }
     else
     {
         ShopBusinessLogic.LoginMember loginMember = new ShopBusinessLogic.LoginMember();
         var address_list = loginMember.ShowMemberAddress(Session["mem_phone"].ToString()).Select(address_info => new MemberAddress()
         {
             address     = address_info.address,
             address_tag = address_info.address_tag,
         }).ToList();
         var resView = new MemberAddress()
         {
             addresses = address_list,
         };
         return(View(resView));
     }
 }
Esempio n. 16
0
        private void addbtn_Click(object sender, EventArgs e)
        {
            clear();

            if (privateAddressRadio.Checked)
            {
                using (MemberAddress memAdd = new MemberAddress(true))
                {
                    adressGrid.DataSource = memAdd.SelectForMonth(DateTime.Now, categoryCombo.SelectedIndex);
                }
            }
            else
            {
                using (OtherAddress otherAdd = new OtherAddress(true))
                {
                    adressGrid.DataSource = otherAdd.SelectForMonth(DateTime.Now, categoryCombo.SelectedIndex);
                }
            }

            setGridRownumber();
        }
Esempio n. 17
0
        /// <summary>
        /// 设置当前地址为使用中的地址
        /// </summary>
        /// <param name="memberAddress"></param>
        /// <param name="db"></param>
        /// <returns></returns>
        public static bool SetAddressIsUsed(this MemberAddress memberAddress, ShopDbContext db, int shopId, int memberId, bool IsConglomeration)
        {
            if (IsConglomeration)
            {
                memberAddress.CheckIsInScope(db, shopId);
            }

            var list = db.Query <MemberAddress>()
                       .Where(m => m.MemberId == memberId)
                       .Where(m => !m.IsDel)
                       .ToList();

            foreach (var item in list)
            {
                item.IsUsed = false;
            }
            memberAddress.IsUsed = true;
            db.SaveChanges();

            return(true);
        }
        public bool AddNewMemberAddressEntry(int memberID, string addressline1, string addressline2, string suburb, string state, string postcode)
        {
            // override any property that could be wise to set from server-side only
            MemberAddress memberAddress = new MemberAddress()
            {
                MemberID     = memberID,
                AddressLine1 = addressline1,
                AddressLine2 = addressline2,
                Suburb       = suburb,
                State        = state,
                PostCode     = postcode
            };

            // add the new item
            db.MemberAddresses.Add(memberAddress);

            // persist the changes into the Database.
            db.SaveChanges();

            // return the newly-created Item to the client.
            return(true);
        }
Esempio n. 19
0
 public Dictionary <string, Object> Post(MemberAddress memberAddress)
 {
     try
     {
         Dictionary <string, Object> dic = new Dictionary <string, object>();
         if (memberAddress.Guid.ToString() != "00000000-0000-0000-0000-000000000000")
         {
             //更新
             dic = CommonRequest.ApiAddressUpdate(memberAddress);
         }
         else
         {
             dic = CommonRequest.ApiAddressAdd(memberAddress);
         }
         return(dic);
     }
     catch (Exception e)
     {
         logger.Error("添加或更新地址接口异常:" + e.Message);
         return(null);
     }
 }
Esempio n. 20
0
        public bool SaveProfileInfo(ProfileInfo req)
        {
            MemberAddress ma = Session.Member().MemberAddress() ?? new MemberAddress();

            req.CopyPropertiesWithSameName(ma);
            if (string.IsNullOrWhiteSpace(ma.InvoiceTitle))
            {
                ma.InvoiceTitle = "Default";
            }
            ma.MemberId    = Session.MemberId;
            ma.AddressType = AddressTypes.DefaultAddress;
            ma.Save();

            Member m = Session.Member();

            req.CopyPropertiesWithSameName(m);
            m.Id = Session.MemberId;
            m.MemberAddressId = ma.Id;
            m.Save();

            return(true);
        }
Esempio n. 21
0
        public ActionResult Delete(MemberAddress ad)
        {
            string phone = Session["mem_phone"].ToString();

            ShopBusinessLogic.LoginMember loginMember = new ShopBusinessLogic.LoginMember();
            string delete_address     = ad.address;
            string delete_address_tag = ad.address_tag;

            loginMember.DeleteMemberAddress(phone, delete_address, delete_address_tag);
            var now_address_list = loginMember.ShowMemberAddress(phone).Select(address_info => new MemberAddress()
            {
                address     = address_info.address,
                address_tag = address_info.address_tag,
            }).ToList();
            var resView = new MemberAddress()
            {
                addresses = now_address_list,
            };

            return(PartialView("AddressPart1", resView));

            //return Redirect("/Address");
        }
Esempio n. 22
0
        private void AddAddressGridRow(MemberAddress ad)
        {
            DataGridViewRow         row   = new DataGridViewRow();
            DataGridViewTextBoxCell cell1 = new DataGridViewTextBoxCell();
            DataGridViewTextBoxCell cell2 = new DataGridViewTextBoxCell();
            DataGridViewTextBoxCell cell3 = new DataGridViewTextBoxCell();
            DataGridViewTextBoxCell cell4 = new DataGridViewTextBoxCell();

            cell1.Value = ad.ID;
            cell2.Value = ad.Address;
            cell3.Value = ad.NumOfMag;
            cell4.Value = ad.Type;


            //  row.HeaderCell.Value = (otherDatagrid.Rows.Count + 1).ToString();
            row.Cells.Add(cell2);
            row.Cells.Add(cell1);
            row.Cells.Add(cell3);
            row.Cells.Add(cell4);


            adressGrid.Rows.Add(row);
        }
Esempio n. 23
0
 public static MemberDemographicsBO Map(Member member, MemberAddress memberAddress, MemberDetail memberDetail, IList <MemberSubscription> memberSubscription)
 {
     return(new MemberDemographicsBO
     {
         MemberID = member.MemberId,
         ExternalMemberId = member.ExternalId,
         Address1 = memberAddress.AddressLine1,
         Address2 = memberAddress.AddressLine2,
         FirstName = memberDetail.FirstName,
         LastName = memberDetail.LastName,
         DateofBirth = memberDetail.DateOfBirth,
         Gender = memberDetail.Gender,
         City = memberAddress.City,
         StateProvince = memberAddress.StateCode,
         ZipCode = memberAddress.ZipCode,
         Email = memberDetail.EmailId,
         PhoneNumber = memberDetail.PhoneNumber,
         MemberType = MemberConstants.Primary,
         MemberDetailId = member.MemberDetailId,
         PaidThroughDate = memberSubscription.Select(j => j.EndDate).FirstOrDefault(),
         GroupID = memberSubscription.Select(j => j.GroupId).FirstOrDefault(),
         DivisionID = memberSubscription.Select(j => j.DivisionId).FirstOrDefault()
     });
 }
        public ApiResult AddAddress([FromBody] CreateMemberAddressModels editModel)
        {
            Argument.ThrowIfNullOrEmpty(editModel.Address, "详细地址");
            Argument.ThrowIfNullOrEmpty(editModel.Contacts, "收货人");
            Argument.ThrowIfNullOrEmpty(editModel.Phone, "联系电话");
            Argument.ThrowIfNullOrEmpty(editModel.Province, "省");
            Argument.ThrowIfNullOrEmpty(editModel.City, "市");
            //Argument.ThrowIfNullOrEmpty(editModel.District, "区");
            //Argument.ThrowIfNullOrEmpty(editModel.Street, "街道");
            Argument.ThrowIfNullOrEmpty(editModel.RegionName, "省市区街道");
            //Argument.ThrowIfNullOrEmpty(editModel.Postcode, "邮政编码");

            var notShipping = _shippingAreaService.NotShippingArea(editModel.City) ??
                              _shippingAreaService.NotShippingArea(editModel.Province);

            if (notShipping != null)
            {
                throw new WebApiInnerException("3002", "您添加的地址不在我们的配送范围内!");
            }

            if (!string.IsNullOrWhiteSpace(editModel.Postcode))
            {
                editModel.Postcode = Utility.Extensions.StringExtensions.NumericOnly(editModel.Postcode);
                if (editModel.Postcode.Length < 6)
                {
                    throw new WebApiInnerException("0002", "邮编必须为6位纯数字");
                }
            }

            var myAddress = _currencyService.GetList <MemberAddress>(me => me.MemberId == AuthorizedUser.Id);
            var model     = new MemberAddress
            {
                Id         = KeyGenerator.GetGuidKey(),
                MemberId   = AuthorizedUser.Id,
                Address    = editModel.Address,
                Contacts   = editModel.Contacts,
                Phone      = editModel.Phone,
                Province   = editModel.Province,
                City       = editModel.City,
                District   = editModel.District,
                Street     = editModel.Street,
                RegionName = editModel.RegionName,
                Postcode   = editModel.Postcode
            };

            if (myAddress == null || myAddress.Count == 0)
            {
                model.IsDefault = true;
            }
            if (!_currencyService.Create(model))
            {
                throw new WebApiInnerException("3001", "添加失败,内部执出错");
            }

            var member = _currencyService.GetSingleById <MemberExtension>(AuthorizedUser.Id);

            if (string.IsNullOrWhiteSpace(member.Address) && (myAddress == null || myAddress.Count == 0))
            {
                member.Address = model.Address;
                _currencyService.Update(member);
            }

            var result = new ApiResult();

            result.SetData(new ListAddressModel(model));
            return(result);
        }
Esempio n. 25
0
        public MemberPlacard(string fn, string ln, MemberDetailsShort s)
        {
            InitializeComponent();

            FirstName = fn;
            LastName  = ln;

            MemberFN.Text       = fn + " " + ln;
            MemberDOB.ValueText = s.DOB;

            MemberPHONE.ValueText = s.Phone1;

            MemberAddress m = s.memberAddress;

            MemberAddress.ValueText = m.Address1 + " " + m.Address2.Trim() + " " + m.City.Trim() + " " + m.State + "  " + m.ZipCode;

            //MemberAddress.Measure()

            if (MemberAddress.ValueText.Length > 37)
            {
                // reduce thge fontsize to help long addresses fit better

                MemberAddress.ValueFontSize = MemberAddress.ValueFontSize - 2;
            }

            if (s.Gender == "M")
            {
                switch (Device.RuntimePlatform)
                {
                case Device.UWP:
                    imgGender.Source = ImageSource.FromFile("Assets/Male.png");
                    break;

                default:
                    imgGender.Source = ImageSource.FromFile("Male.png");
                    break;
                }

                //imgGender.Source = ImageSource.FromFile("Male.png");
            }
            else
            {
                if (s.Gender == "F")
                {
                    switch (Device.RuntimePlatform)
                    {
                    case Device.UWP:
                        imgGender.Source = ImageSource.FromFile("Assets/FeMale.png");
                        break;

                    default:
                        imgGender.Source = ImageSource.FromFile("FeMale.png");
                        break;
                    }

                    //imgGender.Source = ImageSource.FromFile("FeMale.png");
                }
                else
                {
                    switch (Device.RuntimePlatform)
                    {
                    case Device.UWP:
                        imgGender.Source = ImageSource.FromFile("Assets/Unknown.png");
                        break;

                    default:
                        imgGender.Source = ImageSource.FromFile("Unknown.png");
                        break;
                    }

                    //imgGender.Source = ImageSource.FromFile("Unknown.png");
                }
            }


            TheData = s;
        }
Esempio n. 26
0
        /// <summary>
        /// Updates the member demographics.
        /// </summary>
        /// <param name="memberDemographics">The member demographics.</param>
        /// <param name="auditLogBO">The audit log bo.</param>
        /// <returns></returns>
        public async Task <int> UpdateMemberDemographics(MemberDemographicsBO memberDemographics, AuditLogBO auditLogBO)
        {
            var isUpdateCount    = 0;
            var admin123Response = string.Empty;

            if (memberDemographics != null)
            {
                //Update Member PhoneNumber, Email & Address in Admin123
                admin123Response = await InvokeAdmin123Async(memberDemographics);

                if (admin123Response.Equals(HttpStatusCode.OK.ToString()))
                {
                    // Update Member PhoneNumber, Email & Address in MemberPortal Database
                    if (memberDemographics.MemberAddress != null)
                    {
                        var memberAddressRepo = _unitOfWork.GetRepository <MemberAddress>();
                        foreach (var addrToUpdate in memberDemographics.MemberAddress)
                        {
                            if (addrToUpdate.Id != 0)
                            {
                                var repoMemberAddress = memberAddressRepo.GetFirstOrDefault(a => a, b => b.MemberId == addrToUpdate.Id);

                                var existingMemberAddress = new MemberAddress();
                                existingMemberAddress = existingMemberAddress.Clone(repoMemberAddress);

                                if (repoMemberAddress != null)
                                {
                                    repoMemberAddress.AddressLine1 = addrToUpdate.AddressLine1;
                                    repoMemberAddress.AddressLine2 = addrToUpdate.AddressLine2;
                                    repoMemberAddress.City         = addrToUpdate.City;
                                    repoMemberAddress.StateCode    = addrToUpdate.StateCode;
                                    repoMemberAddress.ZipCode      = addrToUpdate.ZipCode;
                                }
                                var isInvalidState = await ValidateState(addrToUpdate.StateCode);

                                if (!isInvalidState)
                                {
                                    _unitOfWork.GetRepository <MemberAddress>().Update(repoMemberAddress);
                                    isUpdateCount += _unitOfWork.SaveChanges();
                                }
                                else
                                {
                                    return((int)Utilities.Enumerations.ValidateState.StateInvalid);
                                }

                                //Log audit for update action on BrokerAddress
                                await AuditMapper.AuditLogging(auditLogBO, memberDemographics.MemberID, AuditAction.Update, repoMemberAddress, existingMemberAddress);
                            }
                        }
                    }
                    if (memberDemographics.MemberDetails != null && Convert.ToInt64(memberDemographics.MemberDetails.MemberId) != 0)
                    {
                        var memberDetailsRepo = _unitOfWork.GetRepository <MemberDetail>();
                        var memberContact     = await memberDetailsRepo.GetFirstOrDefaultAsync(a => a, b => b.MemberDetailId == memberDemographics.MemberDetailId);

                        var existingMemberDetail = new MemberDetail();
                        existingMemberDetail = existingMemberDetail.Clone(memberContact);

                        memberContact.PhoneNumber = memberDemographics.MemberDetails.PhoneNumber;
                        memberContact.EmailId     = memberDemographics.MemberDetails.Email;

                        _unitOfWork.GetRepository <MemberDetail>().Update(memberContact);
                        isUpdateCount += _unitOfWork.SaveChanges();

                        //Log audit for update action
                        await AuditMapper.AuditLogging(auditLogBO, memberDemographics.MemberDetailId, AuditAction.Update, memberContact, existingMemberDetail);
                    }
                }
            }

            if (isUpdateCount > 1)
            {
                return((int)EditInformationStatus.Success);
            }
            else
            {
                return((int)EditInformationStatus.Fail);
            }
        }
Esempio n. 27
0
        static bool SendTemplateMessage(this ShopOrder shopOrder, ShopDbContext db, WechatTemplateSendOptions wechatOptions,
                                        string receiverOpenId, ILogger logger)
        {
            //logger.LogInformation("推送订单订单shopOrderId:{0}", shopOrder.Id);
            try
            {
                if (string.IsNullOrEmpty(receiverOpenId))
                {
                    return(false);
                }
                string accessToken = AccessTokenContainer.GetAccessTokenResult(wechatOptions.AppId).access_token;
                //logger.LogInformation("推送的accesstoken:{0}", accessToken);
                string       url  = wechatOptions.SendUrl + accessToken;
                TemplateData data = new TemplateData();
                string       templateId;
                string       remark = shopOrder.Remark ?? "";

                if (shopOrder.IsTakeOut)
                {
                    var takeOutInfo = db.Query <ShopOrderTakeout>().FirstOrDefault(m => m.ShopOrderId == shopOrder.Id);

                    MemberAddress address = null;
                    if (takeOutInfo != null && takeOutInfo.TakeWay == TakeWay.送货上门)
                    {
                        address = db.Query <MemberAddress>().FirstOrDefault(m => m.MemberId == shopOrder.MemberId);
                    }
                    templateId = wechatOptions.TakeOutTemplateId;
                    string customInfo = "", customAddress = "";
                    if (address != null)
                    {
                        customInfo    = $"{address.Name}{address.Sex}({address.Phone})";
                        customAddress = $"{address.Area}{address.Detail}";
                    }
                    else
                    {
                        customInfo    = "自提";
                        customAddress = "自提";
                    }
                    #region 订单参数
                    data.Add("first", new TemplateDataItem()
                    {
                        value = $"收到新的外卖订单!({DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")})",
                        color = TemplateSendColor
                    });
                    data.Add("keyword1", new TemplateDataItem()
                    {
                        value = shopOrder.OrderNumber,
                        color = TemplateSendColor
                    });
                    data.Add("keyword2", new TemplateDataItem()
                    {
                        value = db.GetSingle <Shop>(shopOrder.ShopId).Name,
                        color = TemplateSendColor
                    });
                    data.Add("keyword3", new TemplateDataItem()
                    {
                        value = customInfo,
                        color = TemplateSendColor
                    });
                    data.Add("keyword4", new TemplateDataItem()
                    {
                        value = customAddress,
                        color = TemplateSendColor
                    });
                    data.Add("keyword5", new TemplateDataItem()
                    {
                        value = $"¥{(shopOrder.Payment ?? 0) / 100f}",
                        color = TemplateSendColor
                    });
                    data.Add("remark", new TemplateDataItem()
                    {
                        value = remark,
                        color = TemplateSendColor
                    });
                    #endregion
                }
                else
                {
                    templateId = wechatOptions.ServiceTemplateId;
                    #region 订单参数
                    data.Add("first", new TemplateDataItem()
                    {
                        value = "您好,您有新的支付订单请及时处理!",
                        color = TemplateSendColor
                    });
                    data.Add("keyword1", new TemplateDataItem()
                    {
                        value = shopOrder.OrderNumber.ToString(),
                        color = TemplateSendColor
                    });
                    data.Add("keyword2", new TemplateDataItem()
                    {
                        value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                        color = TemplateSendColor
                    });
                    data.Add("remark", new TemplateDataItem()
                    {
                        value = remark,
                        color = TemplateSendColor
                    });
                    #endregion
                }

                string detailUrl = $"http://manager.91huichihuihe.com/api/ShopOrderSetAPI/Manager/GetShopOrderView?orderid={shopOrder.Id}&openid={receiverOpenId}";
                ShopOrderTemplateModel templateModel = new ShopOrderTemplateModel()
                {
                    touser      = receiverOpenId,
                    template_id = templateId,
                    url         = detailUrl,
                    data        = data
                };


                JsonSerializer jsonSerializer = new JsonSerializer();

                var responseWait = httpClient.PostAsync(url, new StringContent(JsonConvert.SerializeObject(templateModel)));
                responseWait.Wait();
                var response = responseWait.Result;

                if (response.IsSuccessStatusCode)
                {
                    var reContentWait = response.Content.ReadAsStringAsync();
                    reContentWait.Wait();
                    var reContent = reContentWait.Result;
                    //if (JObject.Parse(reContent).TryGetValue("errcode", out JToken errcode))
                    //{
                    //    if (errcode.Value<int>() == 0)
                    //    {
                    //        shopOrder.IsSend = true;
                    //    }
                    //    else
                    //    {
                    //        shopOrder.IsSend = false;
                    //    }
                    //}
                    //else
                    //{
                    //    shopOrder.IsSend = false;
                    //}
                    return(true);
                }
                else
                {
                    var reContentWait = response.Content.ReadAsStringAsync();
                    reContentWait.Wait();
                    var reContent = reContentWait.Result;
                    logger.LogInformation("模板消息出错:{0}", reContent);
                    return(false);
                }
            }
            catch (Exception e)
            {
                logger.LogInformation("模板消息出错:{0}", e.Message);
                return(false);
            }
        }
Esempio n. 28
0
 void registerPropertyBinding(string origNode, string origProp, MemberAddress ma)
 {
     if (!context.PropertyBindings.ContainsKey(origNode))
         context.PropertyBindings [origNode] = new Dictionary<string, MemberAddress> ();
     context.PropertyBindings [origNode] [origProp] = ma;
 }
 public MemberAddressTest()
 {
     _memberAddress = MemberAddressBuilder.New().Build();
 }
 static IPreparedFeature _(IHubContext <ClusterInfoHub> hub)
 => Feature.Create(() => new ClusterHostManagerActor(),
                   _ => new ClusterState(new SourceCache <MemberData, MemberAddress>(md => MemberAddress.From(md.Member.UniqueAddress)), hub));
Esempio n. 31
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["IdMember"] == null)
            {
                FormsAuthentication.RedirectToLoginPage();
            }
            else
            {
                idMember = int.Parse(Session["IdMember"].ToString());
            }

            if (!IsPostBack)
            {
                btnSubmit.Enabled = false;
                using (UniversalEntities entity = new UniversalEntities())
                {
                    try
                    {
                        int idMember = int.Parse(Session["IdMember"].ToString());

                        Member member = (from i in entity.Members
                                         where i.IdMember == idMember
                                         select i).SingleOrDefault();
                        Dependant    dependant = entity.Dependants.Where(i => i.IdMember == idMember && i.IdDependantType == 5).FirstOrDefault();
                        SchemeOption option    = (from i in entity.SchemeOptions
                                                  where i.IdSchemeOption == member.IdSchemeOption
                                                  select i).SingleOrDefault();
                        User          user            = entity.Users.Where(i => i.IdMember == idMember).FirstOrDefault();
                        MemberAddress postalAddress   = entity.MemberAddresses.Where(p => p.IdMember == idMember && p.IsPostalAddress == true).FirstOrDefault();
                        MemberAddress physicalAddress = entity.MemberAddresses.Where(p => p.IdMember == idMember && p.IsPostalAddress == false).FirstOrDefault();
                        Gender        gender          = entity.Genders.Where(p => p.IdGender == dependant.IdGender).SingleOrDefault();
                        ddlProvince.DataSource = entity.Provinces.ToList();
                        ddlProvince.DataBind();
                        Province physProvince = entity.Provinces.Where(p => p.IdProvince == physicalAddress.IdProvince).FirstOrDefault();
                        lblEmail.Text        = dependant.EmailAddress != null ? dependant.EmailAddress : "Not Available";
                        lblAddress2.Text     = postalAddress != null ? postalAddress.Address2 : "Not Available";
                        lblAddress3.Text     = postalAddress != null ? postalAddress.Address3 : "Not Available";
                        lblAddress4.Text     = postalAddress != null ? postalAddress.Address4 : "Not Available";
                        lblAddress1.Text     = postalAddress != null ? postalAddress.Address1 : "Not Available";
                        lblPostalCode.Text   = postalAddress != null ? postalAddress.PostalCode : "Not Available";
                        lblPhysical1.Text    = physicalAddress != null ? physicalAddress.Address1 : "Not Available";
                        lblPhysical2.Text    = physicalAddress != null ? physicalAddress.Address2 : "Not Available";
                        lblPhysical3.Text    = physicalAddress != null ? physicalAddress.Address3 : "Not Available";
                        lblPhysical4.Text    = physicalAddress != null ? physicalAddress.Address4 : "Not Available";
                        lblProvince.Text     = physProvince != null ? physProvince.Name : "Not Available";
                        lblPhysicalCode.Text = physicalAddress != null ? physicalAddress.PostalCode : "Not Available";
                        lblTelephone.Text    = dependant.TelephoneNumber != null ? dependant.TelephoneNumber : "Not Available";
                        lblCellular.Text     = dependant.CellularNumber != null ? dependant.CellularNumber : "Not Available";
                        lblFaxNumber.Text    = dependant.FaxNumber != null || dependant.FaxNumber != "" ? dependant.FaxNumber : "Not Available";
                        lblWorkNumber.Text   = dependant.WorkNumber != null ? dependant.WorkNumber : "Not Available";
                    }
                    catch
                    {
                        lblError.Text = @"The website encountered a problem retrieving all of your data.  Please report this problem to the CompCare <a href='mailto:[email protected]'>Webmaster</a>.";
                    }
                    tbEmail.Visible         = false;
                    tbFaxNumber.Visible     = false;
                    groupPhysicalTB.Visible = false;
                    groupPostalTB.Visible   = false;
                    tbCellular.Visible      = false;
                    tbTelephone.Visible     = false;
                    tbWorkNumber.Visible    = false;
                    groupPhysicalLB.Visible = true;
                    groupPostalLB.Visible   = true;
                    lblCellular.Visible     = true;
                    lblEmail.Visible        = true;
                    lblFaxNumber.Visible    = true;
                    lblTelephone.Visible    = true;
                    lblWorkNumber.Visible   = true;
                }
            }
        }