public async Task <int> UpdateCanibet(CanibetUpdateModel model, CancellationToken cancelllationToken)
        {
            _hsrDb.Configuration.LazyLoadingEnabled = false;
            var canibet = await _hsrDb.Canibets.SingleOrDefaultAsync(c => c.ID == model.ID, cancelllationToken);

            var result = 0;

            if (canibet == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }

            canibet.DetailType   = model.DetailType;
            canibet.FunctionType = model.FunctionType;
            canibet.UPdateDate   = DateTime.Now;

            if (model.DetailType == DetailTypeEnum.Announcement)
            {
                var canibetAnnouncement = await _hsrDb.CanibetDetails.SingleOrDefaultAsync(c => c.Type == DetailTypeEnum.Announcement && c.CanibetID == model.ID, cancelllationToken);

                if (canibetAnnouncement == null)
                {
                    _hsrDb.CanibetDetails.Add(new CanibetDetail()
                    {
                        CanibetID    = model.ID,
                        Announcement = model.Announcement,
                        CreateDate   = DateTime.Now,
                        Directory    = string.Empty,
                        Type         = DetailTypeEnum.Announcement,
                        UpdateDate   = DateTime.Now,
                        FileName     = string.Empty,
                        MediaType    = string.Empty
                    });
                }
                else
                {
                    canibetAnnouncement.Announcement = model.Announcement;
                    canibetAnnouncement.UpdateDate   = DateTime.Now;
                }
            }

            using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                result = await _hsrDb.SaveChangesAsync(cancelllationToken);

                scope.Complete();
            }

            var indexModel = new CanibetIndexModel()
            {
                ID           = canibet.ID,
                DetailType   = canibet.DetailType.ToString(),
                FunctionType = canibet.FunctionType.GetDescription()
            };

            Microsoft.AspNet.SignalR.IHubContext context = Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext <CanibetHub>();
            context.Clients.All.broadcastMessage(indexModel);

            return(result);
        }
示例#2
0
        public ActionResult LogOff()
        {
            //AuthenticationManager.SignOut();
            FormsAuthentication.SignOut();
            Session.RemoveAll();
            Session.Abandon();
            _canibetDao.ResetCanibet();


            CanibetIndexModel indexModel = new CanibetIndexModel()
            {
                isUsing = false,
            };

            Microsoft.AspNet.SignalR.IHubContext context = Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext <CanibetHub>();
            context.Clients.All.broadcastMessage(indexModel);

            return(RedirectToAction("Index", "Home"));
        }
        public async Task <ActionResult> Index(int id, CancellationToken cancelllationToken)
        {
            var canibet = await _hsrDb.Canibets.SingleOrDefaultAsync(c => c.ID == id, cancelllationToken);

            var model = new CanibetIndexModel();

            if (canibet != null)
            {
                model.isUsing      = true;
                model.ID           = canibet.ID;
                model.FunctionType = canibet.FunctionType.GetDescription();
                model.DetailType   = canibet.DetailType.ToString();
            }
            else
            {
                model.isUsing = false;
            }

            return(View(model));
        }