示例#1
0
        /// <summary>
        /// 日記データを書き込む。
        /// データが存在する場合、上書きする。
        /// </summary>
        /// <param name="diary"></param>
        /// <exception>書き込めない場合、例外発生</exception>
        public void WriteDiaryData(DiaryData diary)
        {
            try
            {
                var reader  = new DiaryCsvReader(_fileName);
                var diaries = reader.ReadAllDiaryData() ?? new List <DiaryData>();

                var target = diaries?.SingleOrDefault(d => d.Date == diary.Date);

                if (target != null)
                {
                    // 上書き
                    target.Text = diary.Text;
                }
                else
                {
                    // 追加
                    diaries.Add(diary);
                }

                WriteAllDiaryData(diaries);
            }
            catch (Exception ex)
            {
                _logger.Error(ex.ToString());
                throw;
            }
        }
示例#2
0
        public void Save(BindingList <DiaryData> diaries)
        {
            try
            {
                if (_diary == null)
                {
                    _diary = new DiaryData {
                        Date = this.Date, Text = this.Text
                    };

                    // insert
                    var temp  = diaries.Where(d => d.Date > this.Date).Last();
                    var index = diaries.IndexOf(temp);

                    diaries.Insert(index + 1, _diary);
                }
                else
                {
                    _diary.Date = Date;
                    _diary.Text = Text;
                }

                var writer = new DiaryCsvWriter(_company);
                writer.WriteDiaryData(_diary);
            }
            catch (Exception)
            {
                throw;
            }
        }
示例#3
0
        public async Task <DiaryData[]> getAllDiaryData(string email)
        {
            Boolean connectionResult = connectToFirebase();

            Query         allDiariesQuery = db.Collection("UserDiaries").Document(email).Collection("MyDiary");
            QuerySnapshot snaps           = await allDiariesQuery.GetSnapshotAsync();

            int diaryCount = 0;

            foreach (DocumentSnapshot snap in snaps)
            {
                diaryCount++;
            }
            DiaryData[] diaries = new DiaryData[diaryCount];

            int i = 0;

            foreach (DocumentSnapshot snap in snaps)
            {
                DBDiaryData dBDiaryData = snap.ConvertTo <DBDiaryData>();
                diaries[i]          = new DiaryData();
                diaries[i].date     = dBDiaryData.date;
                diaries[i].title    = dBDiaryData.title;
                diaries[i].fileLink = dBDiaryData.fileLink;

                i++;
            }
            return(diaries);
        }
示例#4
0
        public async Task Edit_Entry_Test()
        {
            DiaryData diaryData = new DiaryData {
                Id = "3", Text = "12313", DateTime = "01.01.2021 00:00:00"
            };

            Assert.AreEqual(1, await diaryService.TryEditEntry(diaryData));
        }
示例#5
0
        public async Task Remove_Entry_Test()
        {
            DiaryData diaryData = new DiaryData {
                Id = "2",
            };

            Assert.AreEqual(1, await diaryService.TryRemoveEntry(diaryData));
        }
示例#6
0
        private void LoadDiary()
        {
            string filePath = Platform.Instance().GetPersistentDataPath("DiaryData.txt");

            //csv

            /*using (CsvReader csv = new CsvReader(new StreamReader(filePath), false))
             * {
             *  while (csv.ReadNextRecord())
             *  {
             *      for (int i = 0; i < csv.FieldCount; i += 2)
             *      {
             *          if (csv[i] == null)
             *          {
             *              break;
             *          }
             *
             *          int count = 0;
             *          DiaryData data = new DiaryData();
             *          data.category = Int32ParseFast(csv[i]);
             *          data.dressCode = Int32ParseFast(csv[i + 1]);
             *
             *          diaryDatas.Add(data);
             *      }
             *  }
             * }*/

            diaryCollections.Clear();

            if (File.Exists(filePath))
            {
                FileStream   file   = new FileStream(filePath, FileMode.Open, FileAccess.Read);
                StreamReader reader = new StreamReader(file);

                string str = string.Empty;

                while ((str = reader.ReadLine()) != null)
                {
                    DiaryDataCollection collection = new DiaryDataCollection();

                    string[] res = str.Split(',');

                    for (int i = 0; i < res.Length; i += 2)
                    {
                        DiaryData data = new DiaryData();
                        data.category  = Int32ParseFast(res[i]);
                        data.dressCode = Int32ParseFast(res[i + 1]);

                        collection.AddData(data);
                    }

                    diaryCollections.Add(collection);
                }

                reader.Close();
                file.Close();
            }
        }
示例#7
0
    public void On(DiaryData data, MainMenu.voidFunc func)
    {
        gameObject.SetActive(true);
        OffNew = func;
        diaryData = data;
        switch (diaryData.category)
        {
            case Category.irregulars: objectPath = "Monster"; break;
            case Category.raChips: objectPath = "Card"; break;
            case Category.records: objectPath = "Record"; break;
            case Category.humans: objectPath = "Human"; break;
            case Category.etc: objectPath = "Record"; break;
        }
        categoryObject = transform.Find(objectPath);

        if (SaveManager.GetDiaryUnlockData(diaryData.num)[0] == false)
        {
            Debug.Log(diaryData.num);
            noData.transform.Find("Text").GetComponent<Text>().text = Database.GetAchiveDataByDiary(diaryData.num).info;
            return;
        }
        Debug.Log(diaryData.category);
        SaveManager.ChangeNewToOld(diaryData.num);
        noData.SetActive(false);
        categoryObject.gameObject.SetActive(true);
        title.text = diaryData.title;
        content.text = "\n" + diaryData.info;
        content.rectTransform.sizeDelta = new Vector2(1111.6f, content.preferredHeight);
        if (categoryObject.Find("Name") != null)
            categoryObject.Find("Name").GetComponent<Text>().text = diaryData.title;


        string imagePath;
        switch (diaryData.category)
        {
            case Category.irregulars: imagePath = "Monster"; break;
            case Category.raChips: imagePath = "Card"; break;
            case Category.humans: imagePath = "Human"; break;
            default: imagePath = null; break;
        }
        if (imagePath != null)
        {
            Image image = categoryObject.Find("Image").GetComponent<Image>();
            Sprite spr = Resources.Load<Sprite>("Graphic/Diary/Images/" + imagePath + "/" + diaryData.spritePath + "_thumbnail");
            if (spr != null)
            {
                image.sprite = spr;
            }
            else
            {
                image.sprite = Resources.Load<Sprite>("Graphic/Diary/Images/" + "default_thumbnail");
            }
        }
        bar.value = 0.99f;
        //if (categoryObject.Find("Image") != null)
        // categoryObject.Find("Image").GetComponent<Image>().sprite = Resources.Load<Sprite>("Graphic/Diary/Images/" + objectPath + "/" + diaryData.spritePath);
    }
示例#8
0
        public void PlotHairline(DiaryData diary)
        {
            if (_creator == null)
            {
                return;
            }

            _creator.PlotHairline(timeSeriesChart, diary);
        }
示例#9
0
        public async Task Add_Entry_Test()
        {
            string email = "*****@*****.**";

            DiaryData diaryData = new DiaryData {
                Text = "Test from test"
            };

            Assert.AreEqual(1, await diaryService.TryAddEntry(diaryData, email));
        }
示例#10
0
        public void PlotHairline(MSChart.Chart chart, DiaryData diary)
        {
            //chart.ChartAreas[0].CursorX.IsUserEnabled = true;
            // ↓CursorPositonChangedが発生するようになる
            //chart.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;

            //chart.ChartAreas[0].CursorX.Position = diary.Date.ToOADate();
            chart.ChartAreas[0].CursorX.SetCursorPosition(diary.Date.ToOADate());
            //chart.ChartAreas[0].CursorX.Interval = 1E-3;
        }
示例#11
0
    public void Display(DiaryData diaryData)
    {
        this._titleTextField.text = diaryData._Title;
        this._textTextField.text  = diaryData._Text;

        if (Random.value <= 1f)
        {
            this._playbackEngine.Play();
        }
    }
示例#12
0
        public async Task Get_Entries_Test()
        {
            string email = "*****@*****.**";

            DiaryData diaryData = new DiaryData {
                DateTime = "01.01.2021 00:00:00"
            };

            List <DiaryData> test = await diaryService.TryGetEntries(diaryData, email);

            Assert.AreNotEqual(0, test.Count);
        }
示例#13
0
        public DiaryEditViewModel(Company company, DiaryData diary)
        {
            _company = company;
            _diary   = diary;

            if (diary == null)
            {
                DateEnabled = true;
                return;
            }

            Date        = diary.Date;
            DateEnabled = false;
            Text        = diary.Text;
        }
示例#14
0
    public void SetEntity(DiaryData data)
    {
        diaryData  = data;
        _name.text = diaryData.title;
        if (SaveManager.GetDiaryUnlockData(diaryData.num)[0] == false)
        {
            return;
        }
        _lock.SetActive(false);
        image.SetActive(true);

        if (SaveManager.GetDiaryUnlockData(diaryData.num)[1] == true)
        {
            OnNewIcon();
        }
        else
        {
            OffNewIcon();
        }

        string imagePath;

        switch (diaryData.category)
        {
        case Category.irregulars: imagePath = "Monster"; break;

        case Category.raChips: imagePath = "Card"; break;

        case Category.humans: imagePath = "Human"; break;

        default: imagePath = null; break;
        }
        if (imagePath != null)
        {
            Debug.Log("Graphic/Diary/Images/" + imagePath + "/" + diaryData.spritePath + "_list");
            Sprite spr = Resources.Load <Sprite>("Graphic/Diary/Images/" + imagePath + "/" + diaryData.spritePath + "_list");
            Debug.Log(diaryData.spritePath.Length);
            if (spr != null)
            {
                image.GetComponent <Image>().sprite = spr;
            }
            else
            {
                image.SetActive(false);
                //image.GetComponent<Image>().sprite = Resources.Load<Sprite>("Graphic/Diary/Images/" + "default_list");
            }
        }
    }
示例#15
0
        /// <summary>
        /// 日記データを削除する。
        /// </summary>
        /// <param name="diary"></param>
        /// <exception>指定したデータがない場合、例外発生</exception>
        public void DeleteDiaryData(DiaryData diary)
        {
            try
            {
                var reader  = new DiaryCsvReader(_fileName);
                var diaries = reader.ReadAllDiaryData();

                var target = diaries.Single(d => d.Date == diary.Date);

                // 削除
                diaries.Remove(target);
                WriteAllDiaryData(diaries);
            }
            catch (Exception ex)
            {
                _logger.Error(ex.ToString());
                throw;
            }
        }
示例#16
0
 public async Task EditEntry([FromBody] DiaryData data)
 {
     await _service.TryEditEntry(data);
 }
示例#17
0
 public async Task AddEntry([FromBody] DiaryData data)
 {
     await _service.TryAddEntry(data, User.Identity.Name);
 }
示例#18
0
        public ActionResult EnterDiaryData(DiaryDataViewClass model)
        {
            // 20170214 Pandita
            // This function is used to log new data as well as update already logged entry; however, it basically just added a new entry no matter whether it's the first log or just update
            //Database lookup of the last 5 days

            // 20170216 Pandita: diary data was logged in UTC time, change to local time!
            // DateTime dateNow = DateTime.Now;

            DateTime baseTime = DateTime.UtcNow;

            baseTime = DateTime.SpecifyKind(baseTime, DateTimeKind.Unspecified);

            TimeSpan       offset     = TimeZoneInfo.FindSystemTimeZoneById("E. Australia Standard Time").GetUtcOffset(baseTime); // offset value is between -14.0 (towards easthemisphere) ~ 14.0 (towards westhemisphere)
            DateTimeOffset sourceTime = new DateTimeOffset(baseTime, -offset);
            DateTime       dateNow    = sourceTime.LocalDateTime;

            bool update = false;
            // 20170217 Pandita: fix the double entry problem

            /*
             * IEnumerable <DiaryData> lastSynced = from table in Db.DiaryDatas
             *               where table.AspNetUserId.Equals(System.Web.HttpContext.Current.User.Identity.GetUserId()) && table.DateStamp == DateTime.UtcNow.Date
             *                                   orderby table.DateStamp
             *               select table;
             */

            // 20171023 Pandita: Refactoring from LINQ-to-SQL to EF
            //IEnumerable<DiaryData> lastSynced = from table in Db.DiaryData
            //                                    where table.AspNetUserId.Equals(CurrentUserId) && table.DateStamp.Date == dateNow.Date
            //                                    orderby table.DateStamp
            //                                    select table;

            var CurrentUserId = System.Web.HttpContext.Current.User.Identity.GetUserId();

            IEnumerable <DiaryData> lastSynced = from table in Db.DiaryData
                                                 where table.AspNetUserId.Equals(CurrentUserId) && System.Data.Entity.DbFunctions.TruncateTime(table.DateStamp) == dateNow.Date
                                                 orderby table.DateStamp
                                                 select table;

/*
 *          if (lastSynced.Count() != 0)
 *          {
 *              foreach (DiaryData query in lastSynced)
 *              {
 *                  {
 *                      Db.DiaryData.Attach(query);
 *                      Db.Entry(lastSynced).State = EntityState.Modified;
 *                      Db.SaveChanges();
 *                      update = true;
 *                  }
 *              }
 *          }
 *          else
 *          {
 *              if (!update)
 *              {
 *                  model.DiaryData.DateStamp = dateNow;
 *                  model.DiaryData.AspNetUserId = System.Web.HttpContext.Current.User.Identity.GetUserId();
 *                  //Db.DiaryData.InsertOnSubmit(model.DiaryData);
 *                  Db.DiaryData.Add(model.DiaryData);
 *                  System.Diagnostics.Debug.WriteLine("update=", update);
 *                  Db.SaveChanges();
 *
 *              }
 *          }*/


            //checking for a previous entry from the same day
            foreach (DiaryData query in lastSynced)
            {
                // 26 questions,
                update = true;
                // 20170214 Pandita: the date stamp of diary data is the day when the data was logged.
                // In Melbourne study, participants logged data before going to bed; that's why the datestamp of Fitbit data got minus 1 day to keep consistent with the datestamp of diary data.
                // In QUT study, participants will log the data after getting up, no need to adjust the datestamp of Fitbit data.

                query.DateStamp = dateNow;
                query.pss1      = model.DiaryData.pss1;
                query.pss2      = model.DiaryData.pss2;
                query.pss3      = model.DiaryData.pss3;
                query.pss4      = model.DiaryData.pss4;
                query.pss5      = model.DiaryData.pss5;
                query.pss6      = model.DiaryData.pss6;
                query.pss7      = model.DiaryData.pss7;
                query.pss8      = model.DiaryData.pss8;
                query.pss9      = model.DiaryData.pss9;
                query.pss10     = model.DiaryData.pss10;

                query.WakeUpFreshness   = model.DiaryData.WakeUpFreshness;
                query.Mood              = model.DiaryData.Mood;
                query.Stress            = model.DiaryData.Stress;
                query.Tiredness         = model.DiaryData.Tiredness;
                query.Dream             = model.DiaryData.Dream;
                query.BodyTemp          = model.DiaryData.BodyTemp; // not appear
                query.Hormone           = model.DiaryData.Hormone;  // not appear
                query.SchoolStress      = model.DiaryData.SchoolStress;
                query.CoffeeAmt         = model.DiaryData.CoffeeAmt;
                query.CoffeeTime        = model.DiaryData.CoffeeTime;
                query.AlcoholAmt        = model.DiaryData.AlcoholAmt;
                query.AlcoholTime       = model.DiaryData.AlcoholTime;
                query.NapTime           = model.DiaryData.NapTime;
                query.NapDuration       = model.DiaryData.NapDuration;
                query.DigDeviceDuration = model.DiaryData.DigDeviceDuration;
                query.GamesDuration     = model.DiaryData.GamesDuration;
                // 20170214 Pandita: Added time spent with family and friend before bed; added time spent on social media before bed.
                query.SocialFamily = model.DiaryData.SocialFamily;
                query.SocialFriend = model.DiaryData.SocialFriend;
                query.SocialMedia  = model.DiaryData.SocialMedia;

                query.MusicDuration     = model.DiaryData.MusicDuration;
                query.TVDuration        = model.DiaryData.TVDuration;
                query.WorkTime          = model.DiaryData.WorkTime;
                query.WorkDuration      = model.DiaryData.WorkDuration;
                query.ExerciseDuration  = model.DiaryData.ExerciseDuration;
                query.ExerciseIntensity = model.DiaryData.ExerciseIntensity;
                query.DinnerTime        = model.DiaryData.DinnerTime;
                query.SnackTime         = model.DiaryData.SnackTime;

                //Db.DiaryDatas.DeleteOnSubmit(query);
                //Db.SubmitChanges();
                Db.DiaryData.Attach(query);
                Db.Entry(query).State = EntityState.Modified;
                //Db.SaveChanges();
            }

            if (!update)
            {
                DiaryData newlog = new DiaryData();
                newlog.DateStamp    = dateNow;
                newlog.AspNetUserId = System.Web.HttpContext.Current.User.Identity.GetUserId();
                newlog.pss1         = model.DiaryData.pss1;
                newlog.pss2         = model.DiaryData.pss2;
                newlog.pss3         = model.DiaryData.pss3;
                newlog.pss4         = model.DiaryData.pss4;
                newlog.pss5         = model.DiaryData.pss5;
                newlog.pss6         = model.DiaryData.pss6;
                newlog.pss7         = model.DiaryData.pss7;
                newlog.pss8         = model.DiaryData.pss8;
                newlog.pss9         = model.DiaryData.pss9;
                newlog.pss10        = model.DiaryData.pss10;



                newlog.WakeUpFreshness   = model.DiaryData.WakeUpFreshness;
                newlog.Mood              = model.DiaryData.Mood;
                newlog.Stress            = model.DiaryData.Stress;
                newlog.Tiredness         = model.DiaryData.Tiredness;
                newlog.Dream             = model.DiaryData.Dream;
                newlog.BodyTemp          = model.DiaryData.BodyTemp; // not appear
                newlog.Hormone           = model.DiaryData.Hormone;  // not appear
                newlog.SchoolStress      = model.DiaryData.SchoolStress;
                newlog.CoffeeAmt         = model.DiaryData.CoffeeAmt;
                newlog.CoffeeTime        = model.DiaryData.CoffeeTime;
                newlog.AlcoholAmt        = model.DiaryData.AlcoholAmt;
                newlog.AlcoholTime       = model.DiaryData.AlcoholTime;
                newlog.NapTime           = model.DiaryData.NapTime;
                newlog.NapDuration       = model.DiaryData.NapDuration;
                newlog.DigDeviceDuration = model.DiaryData.DigDeviceDuration;
                newlog.GamesDuration     = model.DiaryData.GamesDuration;
                newlog.SocialFamily      = model.DiaryData.SocialFamily;
                newlog.SocialFriend      = model.DiaryData.SocialFriend;
                newlog.SocialMedia       = model.DiaryData.SocialMedia;

                newlog.MusicDuration     = model.DiaryData.MusicDuration;
                newlog.TVDuration        = model.DiaryData.TVDuration;
                newlog.WorkTime          = model.DiaryData.WorkTime;
                newlog.WorkDuration      = model.DiaryData.WorkDuration;
                newlog.ExerciseDuration  = model.DiaryData.ExerciseDuration;
                newlog.ExerciseIntensity = model.DiaryData.ExerciseIntensity;
                newlog.DinnerTime        = model.DiaryData.DinnerTime;
                newlog.SnackTime         = model.DiaryData.SnackTime;

                Db.DiaryData.Add(newlog);

                /*
                 * model.DiaryData.DateStamp = dateNow;
                 * model.DiaryData.AspNetUserId = System.Web.HttpContext.Current.User.Identity.GetUserId();
                 * //Db.DiaryData.InsertOnSubmit(model.DiaryData);
                 * Db.DiaryData.Add(model.DiaryData);
                 * //System.Diagnostics.Debug.WriteLine("update=", update);
                 * // 20171024 Pandita: Why got error when using Db.SaveChanges() here?
                 * // Does that mean Db.SaveChangs() can only be called to wrap up at the very end?
                 * //Db.SaveChanges();
                 */
            }


            //Commiting to database
            // 20171022 Pandita: unify with EF
            //Db.SubmitChanges();
            Db.SaveChanges();

            //redirection to homepage
            TempData["notice"] = "Successfully Saved";

            return(RedirectToAction("Index", "Home"));
        }
示例#19
0
 public async Task RemoveEntry([FromBody] DiaryData data)
 {
     await _service.TryRemoveEntry(data);
 }
示例#20
0
 public void Delete(DiaryData diary)
 {
     // 削除
     _writer.DeleteDiaryData(diary);
     Diaries.Remove(diary);
 }
示例#21
0
            public void GetBookingsAndCloseOutsValidBusinessReturnsTwoBookingsAndTwoCloseouts()
            {
                // Arrange
                // Parameters for the invoke
                var startDate = new DateTime(2012, 1, 27, 0, 0, 0, DateTimeKind.Utc);
                var endDate = new DateTime(2012, 2, 28, 0, 0, 0, DateTimeKind.Utc);
                const long BUSINESS_ID = 1;

                var diaryDataRetrievalMgr = MockRepository.GenerateStub<IDiaryDataRetrievalManager>();

                // Stub the BusinessCache to be used by our service method
                CacheHelper.StubBusinessCacheSingleBusiness(BUSINESS_ID);

                // invalidate the cache so we make sure our business is loaded into the cache
                Cache.Business.Invalidate();

                var customer = new Customer { Id = 23, BusinessId = BUSINESS_ID, Surname = "Doe" };
                var diaryData = new DiaryData
                {
                    Bookings = new List<Booking>
                    {
                        new Booking
                        {
                            Id = 245,
                            BusinessId = BUSINESS_ID,
                            BookingReferenceNumber = "BK0000000000000123",
                            Customer = customer,
                            NumberOfAdults = 1,
                            NumberOfChildren = 0,
                            IsBookingConfirmed = false,
                            IsProvisional = true,
                            StartDateUTC = new DateTime(2012,1,1, 0, 0, 0, DateTimeKind.Utc),
                            EndDateUTC = new DateTime(2012,1,6, 0, 0, 0, DateTimeKind.Utc)
                        },
                        new Booking
                        {
                            Id = 247,
                            BusinessId = BUSINESS_ID,
                            BookingReferenceNumber = "BK0000000000000321",
                            Customer = customer,
                            NumberOfAdults = 1,
                            NumberOfChildren = 0,
                            IsBookingConfirmed = false,
                            IsProvisional = true,
                            StartDateUTC = new DateTime(2012,1,5, 0, 0, 0, DateTimeKind.Utc),
                            EndDateUTC = new DateTime(2012,1,12, 0, 0, 0, DateTimeKind.Utc)
                        }
                    },
                    CloseOuts = new List<Closeout>
                    {
                        new Closeout
                        {
                            Id = 12345
                        },
                        new Closeout
                        {
                            Id = 54321
                        }
                    }
                };


                diaryDataRetrievalMgr.Stub(x => x.GetByBusinessBetweenDates(BUSINESS_ID, startDate, endDate)).Return(diaryData);
                limitedMobileService.DiaryDataRetrievalManager = diaryDataRetrievalMgr;

                // Act
                DiaryDataDto diary = limitedMobileService.GetBookingsAndCloseOuts(BUSINESS_ID, startDate, endDate);

                // Assert
                Assert.AreEqual(2, diary.Bookings.Count, "Incorrect number of bookings returned in diary. Expected 1 received " + diary.Bookings.Count);
                Assert.AreEqual(2, diary.CloseOuts.Count, "Incorrect number of closeouts returned in diary. Expected 2 received " + diary.Bookings.Count);

                // Make sure this is reset for future tests
                limitedMobileService.DiaryDataRetrievalManager = new DiaryDataRetrievalManager();


                // Reassign the Dao on the cache to discard the stub assigned on the StubBusinessCacheSingleBusiness method
                CacheHelper.ReAssignBusinessDaoToBusinessCache();
            }
示例#22
0
#pragma warning restore 0219, 414

    private void OnEnable()
    {
        this._sDiaryData = this.target as DiaryData;
    }
示例#23
0
 public async Task <IEnumerable <DiaryData> > GetEntries([FromBody] DiaryData data)
 {
     return(await _service.TryGetEntries(data, User.Identity.Name));
 }
示例#24
0
 public void AddData(DiaryData data)
 {
     diaryDatas.Add(data);
 }