public async Task <long> CreateFeedEvent(FeedEvent feedEvent) { feedEvent = _feedEventRepository.Create(feedEvent); await _unit.Commit(); return(feedEvent.Id); }
// PUT api/mfeedevent/5 public IHttpActionResult PutFeedEvent(long id, FeedEvent feedEvent) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != feedEvent.Id) { return(BadRequest()); } try { _feedEventService.UpdateFeedEvent(feedEvent); } catch (DbUpdateConcurrencyException) { if (!FeedEventExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public async Task <IHttpActionResult> GetFeedEvent(long id) { FeedEvent feedEvent = await _feedEventService.FindFeedEvent(id); if (feedEvent == null) { return(NotFound()); } return(Ok(feedEvent)); }
public async Task <long> GenerateFeedEvent <T>(T entity) { var type = entity.GetType(); var userId = (string)GetProperty(type, "UserId", entity); var eventId = (long)GetProperty(type, "Id", entity); var e = new FeedEvent { EventId = eventId, UserId = userId }; if (!(await ValidFeedEvent(e, type, entity))) { if (!(await ValidFeedEvent(e, type.BaseType, entity))) { throw new Exception("not valid feed event"); } } _feedEventRepository.Create(e); return(e.Id); }
public static IActionResult FeedPet( [HttpTrigger(AuthorizationLevel.Function, "post", Route = "feed/{pet_id}")] HttpRequest req, ILogger log, string pet_id) { var feedEvent = new FeedEvent() { amount = 1, um = "cup" }; if (household.pets.Count > 0) { var pet = household.pets.FirstOrDefault(x => x.id == Guid.Parse(pet_id)); if (pet != null) { pet.events.Add(feedEvent); } else { return(new NotFoundObjectResult("No pet with id = " + pet_id + " found!")); } } return(new OkObjectResult(feedEvent)); }
private async Task <bool> ValidFeedEvent <T>(FeedEvent e, Type type, T entity) { if (type == typeof(Activity)) { e.Type = EventType.Activity; e.Date = (DateTime)GetProperty(type, "StartTime", entity); e.Description = string.Format("Completed {0:0.00} minutes of {1}", (double)GetProperty(type, "Duration", entity) / 60, (string)GetProperty(type, "Name", entity)); } else if (type == typeof(UserBadge)) { e.Type = EventType.Badge; e.Date = DateTime.UtcNow.LocalTime(); var badge = await _badgeRepository.GetById((long)GetProperty(type, "BadgeId", entity)); e.Description = string.Format("Earned the {0} badge", badge.Name); } else if (type == typeof(Food)) { e.Type = EventType.Food; e.Date = (DateTime)GetProperty(type, "Time", entity); e.Description = string.Format("Ate {0}", (string)GetProperty(type, "FoodName", entity)); } else if (type == typeof(Goal)) { var goalType = (GoalType)GetProperty(type, "Type", entity); var timeFrame = (TimeFrame)GetProperty(type, "TimeFrame", entity); var progress = (double)GetProperty(type, "Progress", entity); var completed = (bool)GetProperty(type, "Completed", entity); Dictionary <GoalType, string> units = new Dictionary <GoalType, string>() { { GoalType.Distance, "miles" }, { GoalType.Duration, "minutes" }, { GoalType.Steps, "steps" } }; var target = (double)GetProperty(type, "Target", entity); if (goalType == GoalType.Duration) { target /= 60; } if (progress < 1) { e.Type = EventType.GoalSet; e.Date = (DateTime)GetProperty(type, "SetDate", entity); e.Description = string.Format("Set a new {0} {1} goal: {2} {3}", timeFrame, goalType, target, units[goalType]); } else if (!completed) { e.Type = EventType.GoalAchieved; e.Date = DateTime.UtcNow.LocalTime(); e.Description = string.Format("Achieved a {0} {1} goal: {2} {3}", timeFrame, goalType, target, units[goalType]); } } else if (type == typeof(Membership)) { e.EventId = (long)GetProperty(type, "GroupId", entity); e.Date = DateTime.UtcNow.LocalTime(); var status = (Status)GetProperty(type, "Status", entity); var group = await _groupRepository.GetById((long)GetProperty(type, "GroupId", entity)); if (status == Status.Member || status == Status.Admin) { e.Type = EventType.GroupJoin; e.Description = string.Format("Joined {0}", group.GroupName); } else if (status == Status.Left) { e.Type = EventType.GroupLeave; e.Description = string.Format("Left {0}", group.GroupName); } } else if (type == typeof(UserMood)) { e.Type = EventType.Mood; e.Date = (DateTime)GetProperty(type, "Time", entity); var mood = await _moodRepository.GetById((long)GetProperty(type, "MoodId", entity)); e.Description = string.Format("Feeling {0}", mood.Type); } else if (type == typeof(EndOfDayReport)) { e.Type = EventType.EndOfDay; var date = (DateTime)GetProperty(type, "Date", entity); e.Date = date; e.Description = string.Format("End of Day Report for {0}", date.ToLocalTime().ToShortDateString()); } else { return(false); } return(true); }
public async Task UpdateFeedEvent(FeedEvent feedEvent) { _feedEventRepository.Update(feedEvent); await _unit.Commit(); }
private void OnFeed(EntityUid uid, SharedBodyComponent body, FeedEvent args) { if (args.Food.Deleted) { return; } args.Food.CancelToken = null; if (!_bodySystem.TryGetComponentsOnMechanisms <StomachComponent>(uid, out var stomachs, body)) { return; } var transferAmount = args.Food.TransferAmount != null ? FixedPoint2.Min((FixedPoint2)args.Food.TransferAmount, args.FoodSolution.CurrentVolume) : args.FoodSolution.CurrentVolume; var split = _solutionContainerSystem.SplitSolution((args.Food).Owner, args.FoodSolution, transferAmount); var firstStomach = stomachs.FirstOrNull( stomach => _stomachSystem.CanTransferSolution((stomach.Comp).Owner, split)); var forceFeed = uid != args.User; // No stomach so just popup a message that they can't eat. if (firstStomach == null) { _solutionContainerSystem.TryAddSolution(uid, args.FoodSolution, split); _popupSystem.PopupEntity( forceFeed ? Loc.GetString("food-system-you-cannot-eat-any-more-other") : Loc.GetString("food-system-you-cannot-eat-any-more") , uid, Filter.Entities(args.User)); return; } split.DoEntityReaction(uid, ReactionMethod.Ingestion); _stomachSystem.TryTransferSolution(firstStomach.Value.Comp.Owner, split, firstStomach.Value.Comp); if (forceFeed) { EntityManager.TryGetComponent(uid, out MetaDataComponent? targetMeta); var targetName = targetMeta?.EntityName ?? string.Empty; EntityManager.TryGetComponent(args.User, out MetaDataComponent? userMeta); var userName = userMeta?.EntityName ?? string.Empty; _popupSystem.PopupEntity(Loc.GetString("food-system-force-feed-success", ("user", userName)), uid, Filter.Entities(uid)); _popupSystem.PopupEntity(Loc.GetString("food-system-force-feed-success-user", ("target", targetName)), args.User, Filter.Entities(args.User)); } else { _popupSystem.PopupEntity(Loc.GetString(args.Food.EatMessage, ("food", args.Food.Owner)), args.User, Filter.Entities(args.User)); } SoundSystem.Play(Filter.Pvs(uid), args.Food.UseSound.GetSound(), uid, AudioParams.Default.WithVolume(-1f)); // Try to break all used utensils foreach (var utensil in args.Utensils) { _utensilSystem.TryBreak((utensil).Owner, args.User); } if (args.Food.UsesRemaining > 0) { return; } if (string.IsNullOrEmpty(args.Food.TrashPrototype)) { EntityManager.QueueDeleteEntity(args.Food.Owner); } else { DeleteAndSpawnTrash(args.Food, args.User); } }
IEnumerator GetNewsFeed(WWW www) { yield return(www); if (string.IsNullOrEmpty(www.error)) { Debug.Log(www.text); List <FeedEvent> newEvents = JsonConvert.DeserializeObject <List <FeedEvent> >(www.text); if (events.Count > 0) { GameManager.me.feed = true; for (int i = newEvents.Count - 1; i >= 0; i++) { FeedEvent e = newEvents[i]; if (e.EventId > events[0].EventId) { events.Insert(0, e); } } } else { events.AddRange(newEvents); } RectTransform newParent = transform.GetChild(0) as RectTransform; int count = newParent.childCount; for (int i = 0; i < count; i++) { Destroy(newParent.GetChild(0)); //wiping the children to construct a new feed } int n = 0; float height = (feedItemPrefab.transform as RectTransform).sizeDelta.y; newParent.sizeDelta = new Vector2(Screen.width, (events.Count - 1) * height); float offset = (events.Count - 1) * height / 2; newParent.localPosition = new Vector3(0, -offset, 0); foreach (FeedEvent e in events) { GameObject item = (GameObject)GameObject.Instantiate(feedItemPrefab); //loop through Stars - adding them to a collection array //initially set the number of stars the photo has (if the user already voted on it) Transform stargroup = item.transform.Find("Stars"); Transform[] Stars = new Transform[6]; for (int s = 1; s < 6; s++) { Stars[s] = stargroup.transform.Find("Star" + s); } string eventType = e.Type.Trim(); Transform image2 = item.transform.Find("Image-Mask");//.GetComponent<Image>(); Image image = image2.transform.Find("Image").GetComponent <Image>(); GameObject avg = stargroup.Find("avg").gameObject; if (eventType == "Photo") { //store imageID to a gameObject's name GameObject imageID = image2.transform.Find("imageID").gameObject; imageID.name = "photoID_" + e.TableItemId.ToString(); GetRating(e.TableItemId, avg, Stars); image.enabled = false; Debug.LogWarning("loading this photo: " + photosUrl + e.TableItemId); WWW request = new WWW(photosUrl + e.TableItemId); StartCoroutine(GetPhoto(request, image)); } else { Texture2D texture = new Texture2D(1, 1); texture.SetPixels(new Color[] { Color.black }); texture.Apply(); image.sprite = Sprite.Create(texture, new Rect(0, 0, 1, 1), new Vector2(1, 1)); } Text[] texts = item.GetComponentsInChildren <Text>(); foreach (Text t in texts) { if (t.gameObject.name == "Name") { WWW request = new WWW(userUrl + e.UserId); StartCoroutine(GetUserName(request, t)); } else if (t.gameObject.name == "Description") { if (eventType == "Photo") { t.text = "Uploaded a new photo!"; } else if (eventType == "Friend") { WWW request = new WWW(friendsUrl + e.TableItemId); StartCoroutine(GetFriendshipInfo(request, e.UserId, t, image)); } else if (eventType == "Challenge") { WWW request = new WWW(challengeUrl + e.TableItemId); //chage the separator Transform sep2 = item.transform.Find("Separator-Group"); Transform separator = sep2.transform.Find("image"); //chage the difficulity tab Transform diffTag2 = item.transform.Find("DifficultyGroup"); Transform diffTag = diffTag2.transform.Find("diffTagImg"); Transform diffText = diffTag2.transform.Find("diffTagText"); StartCoroutine(GetChallengeInfo(request, t, separator, diffTag, diffText)); request = new WWW(completedChallengeUrl + e.UserId); StartCoroutine(GetCompletedChallengePhoto(request, e.TableItemId, image, Stars, avg)); } } } RectTransform otherT = item.transform as RectTransform; Vector2 origSize = otherT.sizeDelta; Vector3 origScale = otherT.localScale; otherT.SetParent(newParent, true); otherT.localPosition = new Vector3(0, offset - height / 2, 0); otherT.sizeDelta = origSize; otherT.localScale = origScale; offset += -(origSize.y * 6 / 7); } } else { Debug.LogError(www.error); Debug.Log(www.text); } //if (GameManager.me.feed == false) //{ // GameManager.me.emptyFeed.SetActive(true); // GameManager.me.homePanel.SetActive(false); //} }