Ejemplo n.º 1
0
        /// <summary>
        /// 添加默认的需求订阅信息当新用户关注时
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public DemandSubscription AddDefautlSubcription(int userId)
        {
            DemandSubscription subscription = null;
            var conn = DBHelper.GetSqlConnection();

            try
            {
                var demandCatogoryRepository = new DemandCategoryRepository();
                var catogroies = demandCatogoryRepository.FindAll();

                using (TransactionScope scope = new TransactionScope())
                {
                    conn.Open();

                    var currentTime = DateTime.Now;
                    subscription = new DemandSubscription()
                    {
                        InsertedTimestamp = currentTime,
                        IsSubscribed = true,
                        LastPushTimestamp = currentTime,
                        LastUpdatedTimestamp = currentTime,
                        WeChatUserId = userId,
                        IsEnableEmailSubscription = false,
                        EmailAddress = string.Empty
                    };

                    subscription = subscriptionDao.InsertOrUpdateSubscription(conn, subscription);

                    if (subscription.IsNotNull() && catogroies.HasItem())
                    {
                        foreach (var item in catogroies)
                        {
                            var subscriptionDetail = new DemandSubscriptionDetail()
                            {
                                InsertedTimestamp = currentTime,
                                SubscriptionId = subscription.SubscriptionId,
                                SubscriptionType = DemandSubscriptionType.Category.ToString(),
                                SubscriptionValue = item.Id.ToString()
                            };

                            subscriptionDao.InsertSubscriptionDetail(conn, subscriptionDetail);
                        }
                    }

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                LogService.LogWexin("添加默认的需求订阅信息当新用户关注时", ex.ToString());
            }
            finally
            {
                conn.Close();
            }

            return subscription;
        }
Ejemplo n.º 2
0
        public ActionResult Update(bool enable, string subscriedTypes, string subscribedAreas, string subscribedKeywords, bool emailEnabled, string emailAddress)
        {
            DemandSubscription subscription = subscriptionService.GetSubscription(CurrentWeChatUser.Id);
            var errorMessage = string.Empty;
            var isValid = true;

            try
            {
                subscriedTypes = subscriedTypes ?? string.Empty;
                subscribedAreas = subscribedAreas ?? string.Empty;
                subscribedKeywords = subscribedKeywords ?? string.Empty;
                emailAddress = emailAddress ?? string.Empty;

                // Clear old subscription details from cache.
                subscription.SubscriptionDetails.Clear();
                subscription.WeChatUserId = CurrentWeChatUser.Id;

                #region Handle subscribed types
                var types = subscriedTypes.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                if (types.Length > 0)
                {
                    foreach (var value in types)
                    {
                        var detail = new DemandSubscriptionDetail()
                        {
                            SubscriptionId = subscription.SubscriptionId,
                            SubscriptionType = DemandSubscriptionType.Category.ToString(),
                            InsertedTimestamp = DateTime.Now,
                            SubscriptionValue = value
                        };

                        subscription.SubscriptionDetails.Add(detail);

                    }
                }
                else
                {
                    if (enable)
                    {
                        errorMessage = "请选择需要订阅的需求类别与类型!";
                        isValid = false;
                    }
                }
                #endregion

                #region Handle subscribed location areas
                var areas = subscribedAreas.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                if (isValid && areas.Length > 0)
                {
                    foreach (var value in areas)
                    {
                        var detail = new DemandSubscriptionDetail()
                        {
                            SubscriptionId = subscription.SubscriptionId,
                            SubscriptionType = DemandSubscriptionType.Area.ToString(),
                            InsertedTimestamp = DateTime.Now,
                            SubscriptionValue = value
                        };

                        subscription.SubscriptionDetails.Add(detail);
                    }
                }
                else
                {
                    if (enable)
                    {
                        errorMessage = "请选择需求类型所属的区域位置!";
                        isValid = false;
                    }
                }

                #endregion

                #region Handle subscribed spcified keywords
                var keywords = subscribedKeywords.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                if (isValid && keywords.Length > 0)
                {
                    foreach (var value in keywords)
                    {
                        var detail = new DemandSubscriptionDetail()
                        {
                            SubscriptionId = subscription.SubscriptionId,
                            SubscriptionType = DemandSubscriptionType.Keywords.ToString(),
                            InsertedTimestamp = DateTime.Now,
                            SubscriptionValue = value
                        };

                        subscription.SubscriptionDetails.Add(detail);

                    }
                }

                #endregion

                if (isValid)
                {
                    subscription.IsSubscribed = enable;
                    subscription.IsEnableEmailSubscription = emailEnabled && !string.IsNullOrWhiteSpace(emailAddress);
                    subscription.EmailAddress = emailAddress;

                    isValid = subscriptionService.UpdateSubscription(subscription);
                }

                if (isValid)
                {
                    errorMessage = "success";
                }
                else
                {
                    if (string.IsNullOrEmpty(errorMessage))
                    {
                        errorMessage = "更新订阅设置失败!";
                    }

                }
            }
            catch (Exception ex)
            {
                LogService.LogWexin("更新订阅设置失败", ex.ToString());
                errorMessage = "更新订阅设置失败!";
            }

            ViewData["UpdateSubscriptionResult"] = errorMessage;

            return View("Index", subscription);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Inserts subscription details.
        /// </summary>
        /// <param name="conn"></param>
        /// <param name="subscriptionDetail"></param>
        /// <returns></returns>
        public bool InsertSubscriptionDetail(SqlConnection conn, DemandSubscriptionDetail subscriptionDetail)
        {
            SqlParameter[] parameters = new SqlParameter[]
            {
                new SqlParameter(Parameter_SubscriptionId, subscriptionDetail.SubscriptionId),
                new SqlParameter(Parameter_SubscriptionType, subscriptionDetail.SubscriptionType),
                new SqlParameter(Parameter_SubscriptionValue, subscriptionDetail.SubscriptionValue),
                new SqlParameter(Parameter_InsertedTimestamp, subscriptionDetail.InsertedTimestamp)
            };

            return DBHelper.RunNonQueryProcedure(conn, SP_InsertDemandSubscriptionDetail, parameters) > 0;
        }