示例#1
0
    public static void NoteMove(NoteAdd noteAdd, Dictionary <string, Transform> noteTarget_D, float waitTime, float gameSpeed, float noteHeight, float time)
    {
        foreach (GameObject note in GameObject.FindGameObjectsWithTag("Note"))
        {
            NoteData noteData = note.GetComponent <NoteData> ();

            if (noteData.time - time < 0)
            {
                NoteData nextNoteData = noteAdd.ChangeNoteData(noteData);
//				Debug.Log (noteData);
                if (nextNoteData.time <= -1)
                {
                    Destroy(note);
                    continue;
                }
                else
                {
                    note.GetComponent <NoteData> ().NoteDataChange = nextNoteData;
                }
            }

            note.transform.position = new Vector3(
                noteTarget_D [noteData.pos].position.x * (IndicateNote(noteData.time, noteData.time - ((waitTime * 1.67f) / gameSpeed), time)),
                (noteTarget_D [noteData.pos].position.y - noteHeight) * Mathf.Pow(((time - noteData.time + (waitTime / gameSpeed)) * (gameSpeed / waitTime)), 2) + noteHeight,
                noteData.transform.position.z);

            note.transform.localScale = noteTarget_D[noteData.pos].transform.localScale * (IndicateNote(noteData.time, noteData.time - ((waitTime * 1.67f) / gameSpeed), time));
        }
    }
示例#2
0
    void Awake()
    {
        Application.targetFrameRate = 80;
        TextAsset text = Resources.Load("TextData/Test") as TextAsset;

        noteAdd = new NoteAdd(text);
    }
示例#3
0
    public static void TapTrigger(NoteAdd noteAdd, float flickJudgeDistance, float time)
    {
        foreach (Touch t in Input.touches)
        {
            var id = t.fingerId;

            string actionType = "";


            switch (t.phase)
            {
            case TouchPhase.Began:
                Ray        ray = Camera.main.ScreenPointToRay(t.position);
                RaycastHit hit = new RaycastHit();
                if (Physics.Raycast(ray, out hit, 100))
                {
                    //Debug.Log (hit.transform.name);
                    fad_A [id].judgePos = hit.transform.name;
                    fad_A [id].tapPos   = Camera.main.WorldToScreenPoint(hit.transform.position);

                    actionType = "tap";
                }

                break;

//			case TouchPha

            case TouchPhase.Moved:
                float xx = t.position.x - fad_A [id].tapPos.x;
                if (flickJudgeDistance < xx)
                {
//					右向きにフリック
//					Debug.Log ("右フリック");
                    actionType = "right";
                }
                else if (-flickJudgeDistance > xx)
                {
//					左向きにフリック
//					Debug.Log ("左フリック");
                    actionType = "left";
                }
                else
                {
                    actionType = "";
                }
                break;

            case TouchPhase.Ended:
                fad_A [id].wasJudge = false;
                actionType          = "";
                break;
            }
            if (!fad_A [id].wasJudge && actionType != "")
            {
                fad_A [id].wasJudge = JudgeNote(noteAdd, fad_A [id].judgePos, actionType, time);
            }
        }
    }
示例#4
0
        public async Task <ActionResult> Post([FromBody] NoteAdd value)
        {
            var result = await _noteService.AddAsync(value);

            if (result.IsError)
            {
                result.StatuCode = 400;
                return(BadRequest(result));
            }
            return(Ok(result));
        }
示例#5
0
        public async void AddBadNote()
        {
            // Arrange
            var opts = new DbContextOptions <DefaultContext>();
            var db   = new Mock <DefaultContext>(opts);

            var user = new User()
            {
                Id       = "user-id-test",
                UserName = "******"
            };

            var notesData = new Note[] {
                new Note()
                {
                    Id    = 1,
                    Text  = new byte[] { 0x0019, 0x0032 },
                    Title = new byte[] { 0x0056, 0x00C1 },
                    User  = user
                }
            };

            db.Setup(d => d.Notes).Returns(MockHelper.GetDbSet(notesData).Object);

            var ctrl = this.GetNoteController(db, user);

            var noteAdd = new NoteAdd()
            {
                SecretKey = "test",
                Text      = "",
                Title     = ""
            };

            ctrl.Setup(ct => ct.TryValidateModel(It.IsIn(noteAdd))).Callback(() => {
                ctrl.Object.ModelState.AddModelError("Text field empty", "Text field empty");
                ctrl.Object.ModelState.AddModelError("Title field empty", "Title field empty");
            });

            //Act
            ctrl.Object.TryValidateModel(noteAdd);
            var result = await ctrl.Object.AddNote(noteAdd);

            //Assert
            Assert.IsType <JsonFailResult>(result);

            var failResult = result as JsonFailResult;

            Assert.Equal(400, failResult.StatusCode);
            Assert.IsType <ErrorsHandler>(failResult.Value);
            Assert.Equal(2, (failResult.Value as ErrorsHandler).Errors.Count);
        }
示例#6
0
    static bool JudgeNote(NoteAdd noteAdd, string targetName, string judgeType, float time)
    {
        NoteData nearNote = serchNearNote(targetName, time);

        if (nearNote != null)
        {
//			Debug.LogFormat ("{0},{1}", judgeType, nearNote.type);
            if (judgeType == "tap" && nearNote.type == "tap")
            {
                if (Mathf.Abs(nearNote.time - time) <= 0.15f)
                {
                    Debug.Log("Good");
                }
                else if (Mathf.Abs(nearNote.time - time) <= 0.25f)
                {
                    Debug.Log("OK");
                }
                else
                {
                    Debug.Log("Bad");
                }
                noteAdd.ChangeNoteData(nearNote);
                return(true);
            }
            else if (nearNote.type != "tap" && judgeType != "tap" && nearNote.type != judgeType)
            {
                Debug.Log("ArrowBad");
                noteAdd.ChangeNoteData(nearNote);
                return(true);
            }
            else if (nearNote.type == judgeType)
            {
                if (Mathf.Abs(nearNote.time - time) <= 0.15f)
                {
                    Debug.Log("Good");
                }
                else if (Mathf.Abs(nearNote.time - time) <= 0.25f)
                {
                    Debug.Log("OK");
                }
                else
                {
                    Debug.Log("Bad");
                }
                noteAdd.ChangeNoteData(nearNote);
                return(true);
            }
        }
        return(false);
    }
示例#7
0
        /// <summary>
        /// Validate add note form.
        /// </summary>
        /// <param name="noteToAdd"></param>
        /// <param name="userWhoAdd"></param>
        /// <param name="stateValid"></param>
        /// <returns></returns>
        public IAddNoteResultValidate ValidateAddNote(NoteAdd noteToAdd, User userWhoAdd)
        {
            var result = new AddNoteResultValidate();

            if (userWhoAdd == null)
            {
                result.Errors.Add("Bad user", "Bad user");
                result.IsSuccess = false;
            }

            result.NoteToAdd = noteToAdd.ToNote(_cryptoMng, userWhoAdd, _modelsFactory);

            return(result);
        }
示例#8
0
        public async void AddGoodNote()
        {
            // Arrange
            var opts = new DbContextOptions <DefaultContext>();
            var db   = new Mock <DefaultContext>(opts);

            var user = new User()
            {
                Id       = "user-id-test",
                UserName = "******"
            };

            var notesData = new Note[] {
                new Note()
                {
                    Id    = 1,
                    Text  = new byte[] { 0x0019, 0x0032 },
                    Title = new byte[] { 0x0056, 0x00C1 },
                    User  = user
                }
            };

            db.Setup(d => d.Notes).Returns(MockHelper.GetDbSet(notesData).Object);

            var ctrl = this.GetNoteController(db, user).Object;

            var noteAdd = new NoteAdd()
            {
                SecretKey = "test",
                Text      = "TextTest",
                Title     = "TitleTest"
            };

            //Act
            var result = await ctrl.AddNote(noteAdd) as JsonResult;

            //Assert
            Assert.Null(result.StatusCode);
            Assert.IsType <NoteForOutput>(result.Value);
            Assert.Equal((result.Value as NoteForOutput).Text, noteAdd.Text);
            Assert.Equal((result.Value as NoteForOutput).Title, noteAdd.Title);
        }
示例#9
0
        public async Task <IActionResult> AddNote([FromBody] NoteAdd noteModel)
        {
            if (!ModelState.IsValid)
            {
                return(_outputFactory.CreateJsonFail(ModelState));
            }

            var user = await _userManager.GetUserAsync(User);

            var addValid = _notesValidator.ValidateAddNote(noteModel, user);

            if (addValid.IsSuccess)
            {
                var note = await _notesMng.AddNote(addValid.NoteToAdd);

                return(Json(_outputFactory.CreateNote(note, noteModel.SecretKey)));
            }
            else
            {
                addValid.ErrorsToModelState(ModelState);
                return(Json(_outputFactory.CreateJsonFail(ModelState)));
            }
        }
示例#10
0
        public async Task <Result> AddAsync(NoteAdd note)
        {
            var n      = note.CreateNote();
            var result = await Task.Run(() =>
            {
                var result = new Result();
                var c      = _contactRepository.Get(n.ContactId);
                if (c == null)
                {
                    result.IsError   = true;
                    result.Message   = "Contact does not exist";
                    result.StatuCode = 400;
                }
                else
                {
                    _noteRepository.Add(n);
                    _noteRepository.Complete();
                }
                return(result);
            });

            return(result);
        }
示例#11
0
        /// <summary>
        /// Open pane based on pane name
        /// </summary>
        /// <typeparam name="TMessage">Message</typeparam>
        /// <param name="paneName">Pane name</param>
        /// <param name="msg">Message</param>
        protected override void AddPane <TMessage>(string paneName, TMessage msg)
        {
            string header = "";
            object content;

            switch (paneName)
            {
            case addPivotItemName:

                content = new NoteAdd();

                if (msg.GetType() == typeof(ItemAddNewMsg))
                {
                    header = "Add Note";
                }
                else
                {
                    header = "Edit Note";
                }

                break;

            case detailPivotItemName:

                content = new NoteDetail();

                header = "Note Detail";
                break;

            default:
                throw new NotImplementedException();
            }

            try
            {
                if (PivotPanes.FirstOrDefault(x => x.Name == paneName) == null)
                {
                    PivotPanes.Insert(0, new PivotItem()
                    {
                        Name    = paneName,
                        Header  = header,
                        Margin  = new Thickness(0),
                        Content = content
                    });
                }
                else
                {
                    PivotPanes.FirstOrDefault(x => x.Name == paneName).Header  = header;
                    PivotPanes.FirstOrDefault(x => x.Name == paneName).Content = content;
                }
            }
            catch (Exception)
            {
                PivotPanes.Clear();
                PivotPanes.Insert(0, new PivotItem()
                {
                    Name    = paneName,
                    Header  = header,
                    Content = content
                });
            }
            finally
            {
                if (PivotPanes.FirstOrDefault(x => x.Name == paneName) != null)
                {
                    //pivotPanes = PivotPanes;
                    RaisePropertyChanged(nameof(PivotPanes));

                    PaneVisibility = true;

                    double MinNormalWidth = (double)Application.Current.Resources["NormalMinWidth"];
                    if (MinNormalWidth > ApplicationView.GetForCurrentView().VisibleBounds.Width)
                    {
                        MasterFrame = new GridLength(0);
                    }

                    Messenger.Send(msg);
                }
            }
        }
 /// <summary>
 /// Raises the <see cref="NoteAdd"/> event.
 /// </summary>
 /// <param name="item">The <see cref="Note"/> which has triggered the event.</param>
 /// <param name="idx">The index at which the item has been added to the collection.</param>
 protected override void OnAdd(Note item, int?idx)
 {
     NoteAdd?.Invoke(this, new NoteEventArgs {
         Note = item
     });
 }