//SAVE DATA
 private async Task SaveScore(int score, int question)
 {
     totalScore += score;
     var groupentity = new GroupTableEntity(groupName, question.ToString())
     {
         Score = score
     };
     await _dataAccess.StoreEntity(groupentity, "GroupScore");
 }
        public void Read_NotThrowsException_StateIsValid()
        {
            var groupKey = new GroupTableEntity
            {
                GroupId = Guid.Parse("00000000-3001-0000-0000-000000000000"),
            };
            var groupRepository = new GroupRepository(TestEnvironment.DBSettings);
            var group           = groupRepository.Read(groupKey);

            Assert.IsNotNull(group);
        }
        public void Update_NotThrowsException_StateIsValid()
        {
            var groupKey = new GroupTableEntity
            {
                GroupId = Guid.Parse("00000000-3001-0000-0000-000000000000"),
            };
            var groupRepository = new GroupRepository(TestEnvironment.DBSettings);
            var group           = groupRepository.Read(groupKey);

            group.UpdateTime = DateUtil.Now;
            Assert.IsTrue(groupRepository.Update(group));
        }
        public void Create_NotThrowsException_StateIsValid()
        {
            var now   = DateUtil.Now;
            var group = new GroupTableEntity
            {
                GroupId     = Guid.NewGuid(),
                GroupCode   = new string('X', 20),
                GroupTree   = new string('0', 8),
                Name        = new string('X', 256),
                Description = new string('X', 1024),
                SortNo      = int.MaxValue,
                Status      = GroupStatus.NORMAL.ToString(),
                CreateTime  = DateTimeOffset.MaxValue,
                UpdateTime  = DateTimeOffset.MaxValue,
            };
            var groupRepository = new GroupRepository(TestEnvironment.DBSettings);

            groupRepository.Create(group);
        }
        private async void btnEmail_Click(object sender, System.Windows.Input.GestureEventArgs e)
        {
            try
            {
                StackPanel       oSPName       = (StackPanel)sender;
                EmailComposeTask emailcomposer = new EmailComposeTask();
                if (this.IsGroup)
                {
                    GroupTableEntity oData = (GroupTableEntity)oSPName.DataContext;
                    emailcomposer.To = oData.Email;
                }
                else if (this.IsLocateBuddy)
                {
                    LocateBuddyTableEntity oData = (LocateBuddyTableEntity)oSPName.DataContext;
                    emailcomposer.To = oData.Email;
                }
                else
                {
                    BuddyTableEntity oData = (BuddyTableEntity)oSPName.DataContext;
                    emailcomposer.To = oData.Email;
                }

                string strMessage = Constants.MessageTemplateText;
                if (Globals.CurrentProfile.MessageTemplate.Trim() != string.Empty)
                {
                    strMessage = Globals.CurrentProfile.MessageTemplate;
                }
                if (this.IsLocateBuddy)
                {
                    strMessage = "I'm reaching to help you";
                }
                emailcomposer.Subject = strMessage;

                emailcomposer.Body = this.IsLocateBuddy ? Constants.LocateBuddyMessageText : await Utility.GetDistressMessage();

                emailcomposer.Show();
            }
            catch (Exception)
            {
                CallErrorHandler();
            }
        }
        private async void btnSMSBuddy_click(object sender, System.Windows.Input.GestureEventArgs e)
        {
            try
            {
                StackPanel oSPName = (StackPanel)sender;
                string     message = this.IsLocateBuddy ? Constants.LocateBuddyMessageText : await Utility.GetDistressMessage();

                if (this.IsGroup)
                {
                    GroupTableEntity oData = (GroupTableEntity)oSPName.DataContext;
                    Utility.SendSMS(new SMSMessage()
                    {
                        PhoneNumbers = oData.PhoneNumber, Message = message
                    });
                }
                else if (this.IsLocateBuddy)
                {
                    LocateBuddyTableEntity oData = (LocateBuddyTableEntity)oSPName.DataContext;
                    Utility.SendSMS(new SMSMessage()
                    {
                        PhoneNumbers = oData.PhoneNumber, Message = message
                    });
                }
                else
                {
                    BuddyTableEntity oData = (BuddyTableEntity)oSPName.DataContext;
                    Utility.SendSMS(new SMSMessage()
                    {
                        PhoneNumbers = oData.PhoneNumber, Message = message
                    });
                }
            }
            catch (Exception ex)
            {
                CallErrorHandler();
            }
        }
        /// <inheritdoc/>
        public Group CreateGroup(GroupCreateDto dto)
        {
            var now    = DateUtil.Now;
            var entity = new GroupTableEntity
            {
                GroupId     = Guid.NewGuid(),
                GroupCode   = dto.GroupCode,
                GroupTree   = dto.GroupTree,
                Name        = dto.Name,
                Description = dto.Description,
                Status      = dto.Status,
                SortNo      = dto.SortNo,
                CreateTime  = now,
                UpdateTime  = now,
            };

            using (var tran = new TransactionScope())
            {
                _groupRepository.Create(entity);

                foreach (var tag in dto.Tags)
                {
                    _tagRepository.Create(new TagTableEntity
                    {
                        TagId       = Guid.NewGuid(),
                        TargetId    = entity.GroupId,
                        Value       = tag,
                        TargetTable = "Group",
                        CreateTime  = now,
                    });
                }

                tran.Complete();
            }
            return(_groupQueryService.GetGroup(entity.GroupId));
        }