public ReservationManager()
 {
     _reservationServices = new ReservationServices();
     _sessionServices     = new SessionService();
     _authorizationClient = new AuthorizationClient();
     _loggerService       = new LoggerService();
 }
        public IHttpActionResult Put([FromBody] ReservationVM vm)
        {
            var db   = new ApplicationDBContext();
            var user = User.Identity as System.Security.Claims.ClaimsIdentity;

            if (UserServices.verifyUser(user) == false)
            {
                UserServices.createUser(user);
            }
            var reservation = ReservationServices.convertFromVM(vm, user);

            db.Reservations.AddOrUpdate(reservation);
            db.SaveChanges();
            return(Ok(reservation));
        }
Esempio n. 3
0
 public HomeController(PropertiesServices propertyServices,
                       UserServices userServices,
                       ReservationServices reservationServices,
                       ReviewServices reviewServices,
                       PostServices postsManager,
                       CommentServices commentsManager,
                       ContactMessageServices contactMessagesManager,
                       CityServices citiesManager)
 {
     propertyManager             = propertyServices;
     reservationsManager         = reservationServices;
     reviewsManager              = reviewServices;
     this.postsManager           = postsManager;
     this.commentsManager        = commentsManager;
     this.contactMessagesManager = contactMessagesManager;
     this.citiesManager          = citiesManager;
     this.userServices           = userServices;
 }
Esempio n. 4
0
 public ReservationsController(ReservationServices reservationServices, ApplicationUserManager userManager)
 {
     ReservationsManager = reservationServices;
     UserManager         = userManager;
 }
        public void Execute()
        {
            // Trace.WriteLine("现在时间是:" + DateTime.Now);
            lock (_lock)
            {
                if (_shuttingDown)
                {
                    return;
                }

                ILoggingService _logger = new LoggingService();
                try
                {
                    VideoServices       videoServices       = new VideoServices();
                    ReservationServices reservationServices = new ReservationServices();
                    CacheService        cacheServices       = new CacheService();

                    var videos = videoServices.GetNoticedElementsAsync().Result;

                    //_logger.Info("消息发送处理视频:" + videos.Count() + "条");
                    foreach (var video in videos)
                    {
                        var res = video.Reservations;
                        //_logger.Info("Reservations.Any:" + video.Reservations.Any());
                        if (!video.Reservations.Any())
                        {
                            continue;
                        }

                        string accesstoken;
                        if (cacheServices.IsSet("access_token"))
                        {
                            accesstoken = (string)cacheServices.Get("access_token");
                        }
                        else
                        {
                            var atvm = WeChatHepler.GetAccessTokenAsync(SettingsManager.WeiXin.AppId, SettingsManager.WeiXin.AppSecret).Result;
                            accesstoken = atvm.access_token;
                            cacheServices.Set("access_token", accesstoken, 120);
                        }
                        //_logger.Info("accesstoken:" + accesstoken);

                        var msg = $"您预约的直播视频[{video.Title}]即将在{video.StartDate:F}直播,At@{DateTime.Now}";
                        _logger.Info("消息内容:" + msg);
                        var openIds = res.Select(d => d.OpenId).ToArray();

                        if (openIds.Length == 1)
                        {
                            //  _logger.Info("accesstoken:单发");
                            var message = new SingleSendMessagesVM {
                                ToUser = openIds[0], MsgType = "text", Text = new Message {
                                    Content = msg
                                }
                            };

                            var json = JsonConvert.SerializeObject(message, Newtonsoft.Json.Formatting.Indented,
                                                                   new JsonSerializerSettings {
                                ContractResolver = new LowercaseContractResolver()
                            });

                            //Log("post:" + json);
                            HttpContent content = new StringContent(json);
                            content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

                            var result = WeChatHepler.SingleSendMessagesAsync(accesstoken, content).Result;
                            if (result.ErrCode == 0)
                            {
                                foreach (var r in res)
                                {
                                    r.NoticedDate = DateTime.Now;
                                }
                                videoServices.Update(video);
                            }

                            _logger.Info($"单发结果[errcode:{result.ErrCode},errmsg:{result.ErrMsg}];消息主体:{json}");
                        }
                        else
                        {
                            // _logger.Info("accesstoken:群发");
                            var message = new BatchSendMessagesVM {
                                ToUser = openIds, MsgType = "text", Text = new Message {
                                    Content = msg
                                }
                            };
                            var json = JsonConvert.SerializeObject(message, Newtonsoft.Json.Formatting.Indented,
                                                                   new JsonSerializerSettings {
                                ContractResolver = new LowercaseContractResolver()
                            });

                            //Log("post:" + json);
                            HttpContent content = new StringContent(json);
                            content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

                            var result = WeChatHepler.BatchSendMessagesAsync(accesstoken, content).Result;
                            if (result.ErrCode == 0)
                            {
                                foreach (var r in res)
                                {
                                    r.NoticedDate = DateTime.Now;
                                }
                                videoServices.Update(video);
                            }
                            _logger.Info($"群发结果[errcode:{result.ErrCode},errmsg:{result.ErrMsg}];消息主体:{json}");
                        }
                    }
                }
                catch (Exception ex)
                {
                    _logger.Fatal("发送失败:" + ex.Message);
                }
            }
        }