예제 #1
0
 /// <summary>
 /// Add command to time line.
 /// </summary>
 /// <param name="moveViewModel">The move view model containing the moves.</param>
 public void AddCommandToTimeline(MoveViewModel moveViewModel, int player)
 {
     foreach (InputItemViewModel inputItem in Command.Commands)
     {
         TimeLineItemViewModel timeLineItemViewModel = new TimeLineItemViewModel();
         timeLineItemViewModel.InputItemViewModel = inputItem;
         _events.Publish(new AddTimeLineItemMessage(timeLineItemViewModel, player));
     }
 }
        internal static TimeLineItemViewModel Deserialize(string stringValue)
        {
            //Deserialize actual timeline item
            TimeLineItem tmpTimeLineItem = TimeLineItem.Deserialize(stringValue);

            //Setup TimeLineItemViewModel
            TimeLineItemViewModel result = new TimeLineItemViewModel();
            result.TimeLineItem = tmpTimeLineItem;
            result.WaitFrames = tmpTimeLineItem.GetFrameDuration();
            result.Description = tmpTimeLineItem.Description;
            result.Index = -1;
            result.PlaySound = tmpTimeLineItem.PlaySound;

            return result;
        }
        private void playTimeline()
        {

            recorder.ResetLockupTimer();
            for (int i = 0; i < timeLineItems.Count; i++)
            {
                TimeLineItemViewModel item = (TimeLineItemViewModel)TimeLineItems[i];

                //highlighting of current item
                SelectedItem = item;

                // if we aren't in a match (defined by being on a menu or pause is selected) the play timeline stops.
                if (recorder.InMatch)
                    item.Action(recorder);
                else
                {
                    // Get the last item in the list
                    i = TimeLineItems.Count - 1;
                    item = (TimeLineItemViewModel)TimeLineItems[i];

                    SelectedItem = item;
                    
                    //also kill loop
                    PlaybackStop();

                    string message = "The combo trainer has detected that SF4 didn't produce any new frames in the last 3 seconds. Make sure that\n\na) Street Fighter 4 is running and inside a match or training mode\nb) Street Fighter is not paused\nc) You are running the latest version of Street Fighter 4 AEv2012\nd) Stage Quality in your SF4 graphic settings is set to HIGH";
                    throw new Exception(message);
                }
            }

            recorder.ReleaseALL();

            //// Get the last item in the list
            //TimeLineItem lastItem = (TimeLineItem)TimeLine.Items[TimeLine.Items.Count - 1];
            SelectedItem = (TimeLineItemViewModel)TimeLineItems[TimeLineItems.Count - 1];
            PlaybackStop();
        }
예제 #4
0
        public async Task <ActionResult> GetTimeLineItem(TimeLineItemViewModel model)
        {
            string userEmail = HttpContext.User.FindFirst("email")?.Value ?? _defaultUser;

            UserInfo userinfo = await _progenyHttpClient.GetUserInfo(userEmail);

            string id   = model.ItemId.ToString();
            int    type = model.TypeId;
            int    itemId;
            bool   idParse = int.TryParse(id, out itemId);

            if (type == (int)KinaUnaTypes.TimeLineType.Photo)
            {
                if (idParse)
                {
                    PictureViewModel picture = await _mediaHttpClient.GetPictureViewModel(itemId, 0, 1, userinfo.Timezone);

                    if (picture != null)
                    {
                        if (!picture.PictureLink.StartsWith("https://"))
                        {
                            picture.PictureLink = _imageStore.UriFor(picture.PictureLink);
                        }
                        picture.CommentsCount = picture.CommentsList.Count;
                        return(PartialView("TimeLinePhotoPartial", picture));
                    }
                }
            }

            if (type == (int)KinaUnaTypes.TimeLineType.Video)
            {
                if (idParse)
                {
                    VideoViewModel video = await _mediaHttpClient.GetVideoViewModel(itemId, 0, 1, userinfo.Timezone);

                    if (video != null)
                    {
                        video.CommentsCount = video.CommentsList.Count;
                        return(PartialView("TimeLineVideoPartial", video));
                    }
                }
            }

            if (type == (int)KinaUnaTypes.TimeLineType.Calendar)
            {
                if (idParse)
                {
                    CalendarItem evt = await _progenyHttpClient.GetCalendarItem(itemId); // _context.CalendarDb.AsNoTracking().SingleOrDefault(e => e.EventId == itemId);

                    if (evt != null && evt.StartTime.HasValue && evt.EndTime.HasValue)
                    {
                        evt.StartTime = TimeZoneInfo.ConvertTimeFromUtc(evt.StartTime.Value, TimeZoneInfo.FindSystemTimeZoneById(userinfo.Timezone));
                        evt.EndTime   = TimeZoneInfo.ConvertTimeFromUtc(evt.EndTime.Value, TimeZoneInfo.FindSystemTimeZoneById(userinfo.Timezone));
                        return(PartialView("TimeLineEventPartial", evt));
                    }
                }
            }

            if (type == (int)KinaUnaTypes.TimeLineType.Vocabulary)
            {
                if (idParse)
                {
                    VocabularyItem voc = await _progenyHttpClient.GetWord(itemId); // _context.VocabularyDb.AsNoTracking().SingleOrDefault(v => v.WordId == itemId);

                    if (voc != null)
                    {
                        if (voc.Date != null)
                        {
                            voc.Date = TimeZoneInfo.ConvertTimeFromUtc(voc.Date.Value, TimeZoneInfo.FindSystemTimeZoneById(userinfo.Timezone));
                        }
                        return(PartialView("TimeLineVocabularyPartial", voc));
                    }
                }
            }

            if (type == (int)KinaUnaTypes.TimeLineType.Skill)
            {
                if (idParse)
                {
                    Skill skl = await _progenyHttpClient.GetSkill(itemId); // _context.SkillsDb.AsNoTracking().SingleOrDefault(s => s.SkillId == itemId);

                    if (skl != null)
                    {
                        return(PartialView("TimeLineSkillPartial", skl));
                    }
                }
            }

            if (type == (int)KinaUnaTypes.TimeLineType.Friend)
            {
                if (idParse)
                {
                    Friend frn = await _progenyHttpClient.GetFriend(itemId); // _context.FriendsDb.AsNoTracking().SingleOrDefault(f => f.FriendId == itemId);

                    if (frn != null)
                    {
                        if (!frn.PictureLink.StartsWith("https://"))
                        {
                            frn.PictureLink = _imageStore.UriFor(frn.PictureLink, "friends");
                        }
                        return(PartialView("TimeLineFriendPartial", frn));
                    }
                }
            }

            if (type == (int)KinaUnaTypes.TimeLineType.Measurement)
            {
                if (idParse)
                {
                    Measurement mes = await _progenyHttpClient.GetMeasurement(itemId); // _context.MeasurementsDb.AsNoTracking().SingleOrDefault(m => m.MeasurementId == itemId);

                    if (mes != null)
                    {
                        return(PartialView("TimeLineMeasurementPartial", mes));
                    }
                }
            }

            if (type == (int)KinaUnaTypes.TimeLineType.Sleep)
            {
                if (idParse)
                {
                    Sleep slp = await _progenyHttpClient.GetSleepItem(itemId); // _context.SleepDb.AsNoTracking().SingleOrDefault(s => s.SleepId == itemId);

                    if (slp != null)
                    {
                        slp.SleepStart = TimeZoneInfo.ConvertTimeFromUtc(slp.SleepStart, TimeZoneInfo.FindSystemTimeZoneById(userinfo.Timezone));
                        slp.SleepEnd   = TimeZoneInfo.ConvertTimeFromUtc(slp.SleepEnd, TimeZoneInfo.FindSystemTimeZoneById(userinfo.Timezone));
                        DateTimeOffset sOffset = new DateTimeOffset(slp.SleepStart,
                                                                    TimeZoneInfo.FindSystemTimeZoneById(userinfo.Timezone).GetUtcOffset(slp.SleepStart));
                        DateTimeOffset eOffset = new DateTimeOffset(slp.SleepEnd,
                                                                    TimeZoneInfo.FindSystemTimeZoneById(userinfo.Timezone).GetUtcOffset(slp.SleepEnd));
                        slp.SleepDuration = eOffset - sOffset;
                        return(PartialView("TimeLineSleepPartial", slp));
                    }
                }
            }

            if (type == (int)KinaUnaTypes.TimeLineType.Note)
            {
                if (idParse)
                {
                    Note nte = await _progenyHttpClient.GetNote(itemId); // _context.NotesDb.AsNoTracking().SingleOrDefault(n => n.NoteId == itemId);

                    if (nte != null)
                    {
                        nte.CreatedDate = TimeZoneInfo.ConvertTimeFromUtc(nte.CreatedDate, TimeZoneInfo.FindSystemTimeZoneById(userinfo.Timezone));
                        return(PartialView("TimeLineNotePartial", nte));
                    }
                }
            }

            if (type == (int)KinaUnaTypes.TimeLineType.Contact)
            {
                if (idParse)
                {
                    Contact cnt = await _progenyHttpClient.GetContact(itemId); // _context.ContactsDb.AsNoTracking().SingleOrDefault(c => c.ContactId == itemId);

                    if (cnt != null)
                    {
                        if (!cnt.PictureLink.StartsWith("https://"))
                        {
                            cnt.PictureLink = _imageStore.UriFor(cnt.PictureLink, "contacts");
                        }
                        if (cnt.DateAdded == null)
                        {
                            cnt.DateAdded = new DateTime(1900, 1, 1);
                        }
                        return(PartialView("TimeLineContactPartial", cnt));
                    }
                }
            }

            if (type == (int)KinaUnaTypes.TimeLineType.Vaccination)
            {
                if (idParse)
                {
                    Vaccination vac = await _progenyHttpClient.GetVaccination(itemId); // _context.VaccinationsDb.AsNoTracking().SingleOrDefault(v => v.VaccinationId == itemId);

                    if (vac != null)
                    {
                        return(PartialView("TimeLineVaccinationPartial", vac));
                    }
                }
            }

            if (type == (int)KinaUnaTypes.TimeLineType.Location)
            {
                if (idParse)
                {
                    Location loc = await _progenyHttpClient.GetLocation(itemId); // _context.LocationsDb.AsNoTracking().SingleOrDefault(l => l.LocationId == itemId);

                    if (loc != null)
                    {
                        return(PartialView("TimeLineLocationPartial", loc));
                    }
                }
            }

            Note failNote = new Note();

            failNote.CreatedDate = DateTime.UtcNow;
            failNote.Title       = "Error, content not found.";

            return(PartialView("TimeLineNotePartial", failNote));
        }
예제 #5
0
 public AddTimeLineItemMessage(TimeLineItemViewModel timeLineItemViewModel)
 {
     TimeLineItemViewModel = timeLineItemViewModel;
 }
예제 #6
0
 public AddTimeLineItemMessage(TimeLineItemViewModel timeLineItemViewModel, int player)
 {
     TimeLineItemViewModel = timeLineItemViewModel;
     Player = player;
 }