private void AddNearCircle()
        {
            var           db    = HWLDBContext.GetDBContext(ShareConfiguration.DBConnectionString);
            t_near_circle model = new t_near_circle()
            {
                user_id       = this.userId,
                content_info  = this.messageModel.Content,
                content_type  = CustomerEnumDesc.GetCircleContentType(this.messageModel.Content, null, null, this.messageModel.ImageUrls?.Count ?? 0),
                lat           = this.positionModel.Lat,
                lon           = this.positionModel.Lon,
                pos_desc      = this.positionModel.PosDetails,
                pos_id        = 0,
                image_urls    = CircleImageParser.GetImageString(this.messageModel.ImageUrls),
                comment_count = 0,
                image_count   = 0,
                like_count    = 0,
                publish_time  = DateTime.Now,
                update_time   = DateTime.Now
            };

            db.t_near_circle.Add(model);
            db.SaveChanges();

            NearCircleStore.CreateNearCirclePos(model.id, model.lon, model.lat);

            //send im message to near users
            //... ...
        }
Exemple #2
0
        public override AddNearCircleInfoResponseBody ExecuteCore()
        {
            AddNearCircleInfoResponseBody res = new AddNearCircleInfoResponseBody();
            t_near_circle model = new t_near_circle()
            {
                user_id       = this.request.UserId,
                content_info  = this.request.Content,
                content_type  = CustomerEnumDesc.GetCircleContentType(this.request.Content, this.request.LinkUrl, this.request.LinkTitle, this.request.Images?.Count ?? 0),
                link_image    = this.request.LinkImage,
                link_title    = this.request.LinkTitle,
                link_url      = this.request.LinkUrl,
                lat           = this.request.Lat,
                lon           = this.request.Lon,
                id            = 0,
                pos_id        = this.request.PosId,
                pos_desc      = this.request.PosDesc,
                comment_count = 0,
                image_count   = this.request.Images != null ? this.request.Images.Count : 0,
                image_urls    = CircleImageParser.GetImageString(this.request.Images),
                like_count    = 0,
                publish_time  = DateTime.Now,
                update_time   = DateTime.Now
            };

            db.t_near_circle.Add(model);
            db.SaveChanges();

            res.NearCircleId = model.id;
            res.ContentType  = model.content_type;
            res.PublishTime  = model.publish_time;

            //向redis中添加信息的位置数据
            if (res.NearCircleId > 0)
            {
                bool succ = Redis.NearCircleStore.CreateNearCirclePos(res.NearCircleId, this.request.Lon, this.request.Lat);
                if (!succ)//如果添加失败,则将数据库中已经添加的数据删除
                {
                    db.t_near_circle.Remove(model);
                    db.SaveChanges();
                    throw new Exception("发布附近信息失败");
                }
                //else
                //{
                //    if (this.request.Images != null && this.request.Images.Count > 0)
                //    {
                //        List<t_near_circle_image> imgModels = new List<t_near_circle_image>();
                //        this.request.Images.ForEach((i) =>
                //        {
                //            if (string.IsNullOrEmpty(i.Url)) return;
                //            imgModels.Add(new t_near_circle_image()
                //            {
                //                near_circle_id = model.id,
                //                near_circle_user_id = model.user_id,
                //                image_url = i.Url,
                //                height = i.Height,
                //                width = i.Width
                //            });
                //        });

                //        if (imgModels == null || imgModels.Count <= 0) return res;

                //        try
                //        {
                //            db.t_near_circle_image.AddRange(imgModels);
                //            db.SaveChanges();
                //        }
                //        catch (Exception)
                //        {
                //            //可以忽略这个错误
                //        }
                //    }
                //}
            }
            return(res);
        }