public async Task <IActionResult> EditShout([FromBody] Shout shout)
        {
            var user = await TokenHelper.GetUser(User, _userManager);

            if (user == null)
            {
                return(RequestHandler.Unauthorized());
            }

            if (!shout.User.Equals(user.Id))
            {
                if (!User.IsInRole("Admin") && !User.IsInRole("Moderator"))
                {
                    return(RequestHandler.Unauthorized());
                }
            }

            using (var session = _documentStoreHolder.Store.OpenAsyncSession())
            {
                await session.StoreAsync(shout);

                await session.SaveChangesAsync();
            }

            await _signalRHub.Clients.All.EditShout(shout);

            return(Ok());
        }
Exemplo n.º 2
0
        public async Task GetPreviousShoutsPage_CallsAllExpectedServices()
        {
            // Arrange
            var shouts = new Shout[]
            {
                new Shout(),
                new Shout(),
                new Shout()
            };
            var shoutsResponse = new ShoutsResponse
            {
                ContinuationToken = new ContinuationToken(),
                Shouts            = shouts
            };

            _continuationTokenHelperMock
            .Setup(x => x.GetPreviousPageToken())
            .Returns(new ContinuationToken());

            _apiClientMock
            .Setup(x => x.GetShoutsResponse(It.IsAny <ContinuationToken>()))
            .ReturnsAsync(shoutsResponse);

            // Act
            var result = await _paginationService.GetPreviousShoutsPage();

            // Assert
            Assert.Equal(shouts, result);
            _continuationTokenHelperMock.Verify(x => x.AddToken(It.IsAny <ContinuationToken>()), Times.Never);
        }
        public async Task <IActionResult> Shout([FromBody] ShoutBoxModel model)
        {
            var user = await TokenHelper.GetUser(User, _userManager);

            if (user == null)
            {
                return(RequestHandler.Unauthorized());
            }

            var shout = new Shout
            {
                Message  = model.Message,
                User     = user.Id,
                Date     = DateTime.UtcNow,
                Email    = user.Email,
                Username = user.UserName.Capitalize()
            };

            using (var session = _documentStoreHolder.Store.OpenAsyncSession())
            {
                await session.StoreAsync(shout);

                await session.SaveChangesAsync();
            }

            await _signalRHub.Clients.All.ReceiveShoutBoxMessage(shout);

            return(Ok());
        }
Exemplo n.º 4
0
        public async Task <IActionResult> Edit(int id, [Bind("ID,Type,Data,Location,ShoutBy,ShoutByID,Vote,Reject,Time,Attach,Image")] Shout shout)
        {
            if (id != shout.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(shout);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ShoutExists(shout.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(shout));
        }
Exemplo n.º 5
0
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            if (_renderContainer)
            {
                writer.WriteLine(@"<div id=""shoutList"">");
            }

            for (int i = 0; i < this._shouts.Count; i++)
            {
                Shout shout = this._shouts[i];
                if (shout.IsSpam)
                {
                    shout.Message = "<em>[shout removed]</em>";
                }

                writer.WriteLine(@"<div class=""shout"">");
                new UserLink(shout.FromUserID).RenderControl(writer);
                writer.WriteLine(" said ");
                if (_showTime)
                {
                    writer.WriteLine(@"<span style=""font-size:smaller"">({0})</span>:", Dates.ReadableDiff(shout.CreatedOn, DateTime.Now));
                }

                writer.WriteLine(@"<div class=""shoutMessage"">{0}</div>", shout.Message);
                writer.WriteLine("</div>");
            }

            if (_renderContainer)
            {
                writer.WriteLine(@"</div>");
            }
        }
Exemplo n.º 6
0
        public void should_not_shout_if_hushed()
        {
            var player = new PlayerBuilder()
                         .With(p => p.User, new UserBuilder()
                               .With(u => u.Id, "abcde")
                               .BuildAndSave())
                         .With(p => p.Location, LocationsStatics.STREET_200_MAIN_STREET)
                         .With(p => p.ShoutsRemaining, 1)
                         .BuildAndSave();

            var effectSourceHushed = new EffectSourceBuilder()
                                     .With(e => e.Id, CharacterPrankProcedures.HUSHED_EFFECT)
                                     .BuildAndSave();

            var effectHushed = new EffectBuilder()
                               .With(e => e.EffectSource, effectSourceHushed)
                               .BuildAndSave();

            player.Effects.Add(effectHushed);

            var cmd = new Shout {
                Message = "Hello world!", UserId = player.User.Id
            };

            Assert.That(() => Repository.Execute(cmd),
                        Throws.TypeOf <DomainException>().With.Message.EqualTo("You have been hushed and cannot currently shout."));
        }
Exemplo n.º 7
0
        public IHttpActionResult PutShout(Guid id, Shout shout)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != shout.ID)
            {
                return(BadRequest());
            }

            db.Entry(shout).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ShoutExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public IActionResult FeedSigned(HttpResponse response, HttpSession session, ShoutBindingModel sbm)
        {
            var user  = this.data.LoginRepository.FindUserByLogin(session.Id);
            var shout = new Shout()
            {
                Author   = user,
                Content  = sbm.Content,
                PostedOn = DateTime.Now
            };

            if (sbm.Lifetime != 0)
            {
                shout.Lifetime = new TimeSpan(sbm.Lifetime, 59, 59);
            }
            var notification = new Notification()
            {
                ShoutAuthor = user
            };
            var followedBy = this.data.UsersRepository.Find(u => u.Following.Select(f => f.Id).Contains(user.Id));

            foreach (var follower in followedBy)
            {
                follower.Notifications.Add(notification);
            }
            this.data.ShoutRepository.Insert(shout);
            this.data.SaveChanges();
            Redirect(response, "/home/feedSigned");
            return(null);
        }
 public void Poke()
 {
     AngerLevel++;
     if (AngerLevel >= 3)
     {
         Shout?.Invoke(this, EventArgs.Empty);
     }
 }
Exemplo n.º 10
0
        public ActionResult DeleteConfirmed(int id)
        {
            Shout shout = db.Shouts.Find(id);

            db.Shouts.Remove(shout);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemplo n.º 11
0
 // method
 public void poke()
 {
     AngerLevel++;
     if (AngerLevel >= 3)
     {
         // if something is listening...
         Shout?.Invoke(this, EventArgs.Empty);
     }
 }
Exemplo n.º 12
0
 //method
 public void Poke()
 {
     AngerLevel++;
     if (AngerLevel >= 3)
     {
         // if something is listening, then call the delegate
         Shout?.Invoke(this, EventArgs.Empty);
     }
 }
Exemplo n.º 13
0
        public void should_throw_exception_if_message_too_long()
        {
            var cmd = new Shout {
                Message = "Yes this is a very long shout, too long for someone to reasonably want to say as a shout and stuff whoooo", UserId = "abcde"
            };

            Assert.That(() => Repository.Execute(cmd),
                        Throws.TypeOf <DomainException>().With.Message.EqualTo("A shout must contain 100 characters or fewer."));
        }
Exemplo n.º 14
0
        public void should_throw_exception_if_message_not_provided(string shout)
        {
            var cmd = new Shout {
                Message = shout, UserId = "abcde"
            };

            Assert.That(() => Repository.Execute(cmd),
                        Throws.TypeOf <DomainException>().With.Message.EqualTo("A shout message is required"));
        }
Exemplo n.º 15
0
        public void should_throw_exception_if_user_not_provided()
        {
            var cmd = new Shout {
                Message = "Hello world!", UserId = null
            };

            Assert.That(() => Repository.Execute(cmd),
                        Throws.TypeOf <DomainException>().With.Message.EqualTo("userId is required"));
        }
Exemplo n.º 16
0
    // Chooses the sound for the shout
    private string PlayStandardShout(Shout shout, bool logShout)
    {
        string log = "";

        if (shout.GetVoice() == VOICES[2])   // Child
        {
            switch (shout.GetDirection())
            {
            case "Right": Audio.PlaySoundAtTransform("FollowingOrders_Child_Right", speakerPos); log = "Child Right"; break;

            case "Down": Audio.PlaySoundAtTransform("FollowingOrders_Child_Down", speakerPos); log = "Child Down"; break;

            case "Left": Audio.PlaySoundAtTransform("FollowingOrders_Child_Left", speakerPos); log = "Child Left"; break;

            default: Audio.PlaySoundAtTransform("FollowingOrders_Child_Up", speakerPos); log = "Child Up"; break;
            }
        }

        else if (shout.GetVoice() == VOICES[1])   // Male
        {
            switch (shout.GetDirection())
            {
            case "Right": Audio.PlaySoundAtTransform("FollowingOrders_Male_Right", speakerPos); log = "Male Right"; break;

            case "Down": Audio.PlaySoundAtTransform("FollowingOrders_Male_Down", speakerPos); log = "Male Down"; break;

            case "Left": Audio.PlaySoundAtTransform("FollowingOrders_Male_Left", speakerPos); log = "Male Left"; break;

            default: Audio.PlaySoundAtTransform("FollowingOrders_Male_Up", speakerPos); log = "Male Up"; break;
            }
        }

        else   // Female
        {
            switch (shout.GetDirection())
            {
            case "Right": Audio.PlaySoundAtTransform("FollowingOrders_Female_Right", speakerPos); log = "Female Right"; break;

            case "Down": Audio.PlaySoundAtTransform("FollowingOrders_Female_Down", speakerPos); log = "Female Down"; break;

            case "Left": Audio.PlaySoundAtTransform("FollowingOrders_Female_Left", speakerPos); log = "Female Left"; break;

            default: Audio.PlaySoundAtTransform("FollowingOrders_Female_Up", speakerPos); log = "Female Up"; break;
            }
        }

        // Logging the shouts
        if (logShout == true)
        {
            return(log);
        }

        else
        {
            return("");
        }
    }
Exemplo n.º 17
0
    public void Shout(string text)
    {
        Vector3 newPos = new Vector3(500, 460, 0);

        Shout newShout = Instantiate(shoutPrefab, newPos, new Quaternion());

        newShout.GetComponentInChildren <Text>().text = text;
        newShout.transform.SetParent(this.transform);
    }
Exemplo n.º 18
0
    public bool Verify()
    {
        using var bytesPipe = new BytesPipe();
        var target = new Shout(this.CreationTime, this.Value, null);

        target.Export(bytesPipe.Writer, BytesPool.Shared);

        return(this.Certificate?.Verify(bytesPipe.Reader.GetSequence()) ?? false);
    }
Exemplo n.º 19
0
        public void should_throw_exception_if_player_not_found()
        {
            var cmd = new Shout {
                Message = "Hello world!", UserId = "abcde"
            };

            Assert.That(() => Repository.Execute(cmd),
                        Throws.TypeOf <DomainException>().With.Message
                        .EqualTo("Player with user ID 'abcde' could not be found"));
        }
Exemplo n.º 20
0
 // method
 public void Poke()
 {
     AngerLevel++;
     if (AngerLevel >= 3)
     {
         // if somebody listens us...
         //... then event raises
         Shout?.Invoke(this, EventArgs.Empty);
     }
 }
Exemplo n.º 21
0
 public void Poked()
 {
     AngerLevel++;
     if (AngerLevel >= 3)
     {
         // if(Shout != null){
         // Shout(this,EventArgs.Empty);
         // }
         Shout?.Invoke(this, EventArgs.Empty);
     }
 }
Exemplo n.º 22
0
 void Awake()
 {
     _animator  = GetComponentInChildren <Animator>();
     _rigidbody = GetComponent <Rigidbody2D>();
     _shout     = GetComponentInChildren <Shout>();
     Alive      = true;
     _startPos  = transform.position;
     _startRot  = transform.rotation;
     PickupGun(GetComponentInChildren <Gun>());
     _reaction = GetComponentInChildren <Reaction>();
 }
Exemplo n.º 23
0
 // method
 public void Poke()
 {
     AngerLevel++;
     if (AngerLevel >= 3)
     {
         // if something is listening...
         // ...then raise the event
         //?.Invoke check if the event is not null
         Shout?.Invoke(this, EventArgs.Empty);
     }
 }
Exemplo n.º 24
0
        private static bool DoesKeeperHateThieves(CharacterInstance keeper, CharacterInstance ch)
        {
            if (!ch.Act.IsSet((int)PlayerFlags.Thief))
            {
                return(false);
            }

            Say.do_say(keeper, "Thieves are not welcome here!");
            Shout.do_shout(keeper, $"{ch.Name} the THIEF is over here!");
            return(true);
        }
Exemplo n.º 25
0
    public static Shout Create(Timestamp creationTime, IMemoryOwner <byte> value, OmniDigitalSignature digitalSignature)
    {
        using var bytesPipe = new BytesPipe();
        var target = new Shout(creationTime, value, null);

        target.Export(bytesPipe.Writer, BytesPool.Shared);

        var certificate = OmniDigitalSignature.CreateOmniCertificate(digitalSignature, bytesPipe.Reader.GetSequence());

        return(new Shout(creationTime, value, certificate));
    }
Exemplo n.º 26
0
        private static bool DoesKeeperHateKillers(CharacterInstance keeper, CharacterInstance ch)
        {
            if (!ch.Act.IsSet((int)PlayerFlags.Killer))
            {
                return(true);
            }

            Say.do_say(keeper, "Murderers are not welcome here!");
            Shout.do_shout(keeper, $"{ch.Name} the KILLER is over here!");
            return(false);
        }
Exemplo n.º 27
0
        public static bool Execute(MobileInstance ch, IManager dbManager)
        {
            if (!ch.IsAwake() || ch.CurrentFighting != null)
            {
                return(false);
            }

            var maxEvil = 300;
            var crime   = string.Empty;
            CharacterInstance victim = null;
            CharacterInstance ech    = null;

            foreach (var vch in ch.CurrentRoom.Persons.Where(vch => vch != ch))
            {
                victim = vch;

                crime = GetCrime(victim);
                if (!string.IsNullOrEmpty(crime))
                {
                    break;
                }

                if (vch.CurrentFighting == null || vch.GetMyTarget() == ch || vch.CurrentAlignment >= maxEvil)
                {
                    continue;
                }

                maxEvil = vch.CurrentAlignment;
                ech     = victim;
            }

            if (victim != null && ch.CurrentRoom.Flags.IsSet(RoomFlags.Safe))
            {
                Yell.do_yell(ch, $"{victim.Name} is a {crime}! As well as a COWARD!");
                return(true);
            }

            if (victim != null)
            {
                Shout.do_shout(ch, $"{victim.Name} is a {crime}! PROTECT THE INNOCENT! BANZAI!!!");
                fight.multi_hit(ch, victim, Program.TYPE_UNDEFINED);
                return(true);
            }

            if (ech == null)
            {
                return(false);
            }

            comm.act(ATTypes.AT_YELL, "$n screams 'PROTECT THE INNOCENT!! BANZAI!!", ch, null, null, ToTypes.Room);
            fight.multi_hit(ch, ech, Program.TYPE_UNDEFINED);
            return(true);
        }
Exemplo n.º 28
0
 public ActionResult Edit([Bind(Include = "SeshToShout,Shouter,Amount")] Shout shout)
 {
     if (ModelState.IsValid)
     {
         db.Entry(shout).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.Shouter     = new SelectList(db.Members, "Email", "Email", shout.Shouter);
     ViewBag.SeshToShout = new SelectList(db.Seshes, "SeshID", "Date", shout.SeshToShout);
     return(View(shout));
 }
Exemplo n.º 29
0
        public static bool Execute(MobileInstance ch, IManager dbManager)
        {
            if (!ch.IsAwake() || ch.CurrentFighting != null)
            {
                return(false);
            }

            var crime = string.Empty;
            CharacterInstance victim = null;

            foreach (var vch in ch.CurrentRoom.Persons.Where(vch => vch != ch))
            {
                victim = vch;
                crime  = GetCrime(victim);
                if (!string.IsNullOrEmpty(crime))
                {
                    break;
                }
            }
            if (victim == null)
            {
                return(false);
            }

            if (ch.CurrentRoom.Flags.IsSet(RoomFlags.Safe))
            {
                Yell.do_yell(ch, $"{victim.Name} is a {crime}! As well as a COWARD!");
                return(true);
            }

            Shout.do_shout(ch, $"{victim.Name} is a {crime}! PROTECT THE INNOCENT! MORE BLOOOOD!!!");
            fight.multi_hit(ch, victim, Program.TYPE_UNDEFINED);

            if (ch.CharDied())
            {
                return(true);
            }

            var vnum = GameConstants.GetVnum("MobileCityGuard");

            var databaseMgr = (IRepositoryManager)(dbManager ?? RepositoryManager.Instance);
            var cityguard   = databaseMgr.GetEntity <MobileTemplate>(vnum);

            var newGuard = databaseMgr.CHARACTERS.Create(cityguard, null);

            ch.CurrentRoom.AddTo(newGuard);

            newGuard = databaseMgr.CHARACTERS.Create(cityguard, null);
            ch.CurrentRoom.AddTo(newGuard);
            return(true);
        }
Exemplo n.º 30
0
        protected void bAjaxPostback_Click(object sender, EventArgs e)
        {
            string status = string.Empty;

            try
            {
                Affine.WebService.StreamService   ss          = new Affine.WebService.StreamService();
                Affine.Data.Managers.IDataManager dataManager = Affine.Data.Managers.LINQ.DataManager.Instance;

                switch (hiddenAjaxAction.Value)
                {
                case "delStream":
                    long sid = Convert.ToInt64(hiddenAjaxValue.Value);
                    Affine.Data.Managers.LINQ.DataManager.Instance.deleteStream(UserSettings, sid);
                    status = "Your stream item has been deleted.";
                    RadAjaxManager1.ResponseScripts.Add("UpdateStatus('" + status + "'); ");
                    break;

                case "delComment":
                    long cid = Convert.ToInt64(hiddenAjaxValue.Value);
                    Affine.Data.Managers.LINQ.DataManager.Instance.deleteComment(UserSettings, cid);
                    status = "Your commnet has been deleted.";
                    RadAjaxManager1.ResponseScripts.Add("UpdateStatus('" + status + "'); ");
                    break;

                case "AddComment":
                    try
                    {
                        JavaScriptSerializer jserializer = new JavaScriptSerializer();
                        Shout shoutRet = dataManager.SaveShout(-1, this.UserId, -1, this.PortalId, hiddenAjaxValue.Value);
                        // get the json serializable version of the object.
                        Affine.Data.json.StreamData sd = Affine.Data.Managers.LINQ.StreamManager.Instance.UserStreamEntityToStreamData(shoutRet, null);
                        // RadAjaxManager1.ResponseScripts.Add(" (function(){ Aqufit.Page.Controls.atiStreamPanel.prependJson(" + _jserializer.Serialize(sd) + "); })();");
                        string json = jserializer.Serialize(sd);
                        RadAjaxManager1.ResponseScripts.Add(" (function(){ Aqufit.Page.atiStreamScript.prependJson('" + json + "'); Aqufit.Page.atiComment.clear(); })();");
                        //Affine.WebService.StreamService service = new WebService.StreamService();
                        //RadAjaxManager1.ResponseScripts.Add(" (function(){ Aqufit.Page.atiStreamScript.prependJson('" + service.SaveStreamShout(-1, this.UserId, this.PortalId, hiddenAjaxValue.Value) + "'); Aqufit.Page.atiComment.clear(); })();");
                    }
                    catch (Exception ex)
                    {
                        RadAjaxManager1.ResponseScripts.Add("Aqufit.Page.Actions.ShowFail('Error: " + ex.Message + "');");
                    }
                    break;
                }
            }
            catch (Exception ex)
            {
                //status = "ERROR: There was a problem with the action (" + ex.Message + ")";
                RadAjaxManager1.ResponseScripts.Add(" alert('" + ex.Message + "'); ");
            }
        }
Exemplo n.º 31
0
        public string SaveStreamShout(long gid, long uid, long pid, string txt)
        {
            aqufitEntities entities = new aqufitEntities();
            UserSettings settings = entities.UserSettings.FirstOrDefault(us => us.UserKey == uid && us.PortalKey == pid);
            // create a new workout record
            Shout shout = new Shout()
            {
                PortalKey = pid,
                UserSetting = settings,
                Date = DateTime.Now.ToUniversalTime(),
                Description = txt,
                TimeStamp = DateTime.Now.ToUniversalTime(),

            };
            if (gid > 0)
            {
                // TODO: check that the user is an admin of the group..
                Group group = entities.UserSettings.OfType<Group>().FirstOrDefault(g => g.Id == gid);
                if (group != null)
                {
                    shout.GroupKey = gid;
                    shout.UserSetting = group;
                    settings = group;
                }

            }
            entities.AddToUserStreamSet(shout);
            entities.SaveChanges();

            // Need the shout ID so query for it
            Shout shoutRet = entities.UserStreamSet.OfType<Shout>().Where(s => s.UserSetting.UserKey == settings.UserKey).OrderByDescending(u => u.Id).FirstOrDefault();
            // get the json serializable version of the object.
            Affine.Data.json.StreamData sd = _IStreamManager.UserStreamEntityToStreamData(shoutRet, null);
            // RadAjaxManager1.ResponseScripts.Add(" (function(){ Aqufit.Page.Controls.atiStreamPanel.prependJson(" + _jserializer.Serialize(sd) + "); })();");
            return _jserializer.Serialize(sd);
        }