Beispiel #1
0
        /// <summary>
        /// 保存数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void Btn_Save_ClickAnsyc(object sender, RoutedEventArgs e)
        {
            int AddedCount = 0;
            List <Lib.MemberSalary> MemberSalaries = new List <MemberSalary>();

            for (int i = 0; i < _CurViewModel.SalaryJArray.Count; i++)
            {
                JToken           TempJtoken    = _CurViewModel.SalaryJArray[i];
                Lib.MemberSalary TempSalary    = new MemberSalary();
                PropertyInfo[]   propertyInfos = TempSalary.GetType().GetProperties();
                foreach (PropertyInfo item in propertyInfos)
                {
                    if (_CurViewModel.NamesEnCn.Keys.Contains(item.Name))
                    {
                        if (item.Name.Equals("PayYear") || item.Name.Equals("PayMonth"))
                        {
                            if (int.TryParse(TempJtoken[_CurViewModel.NamesEnCn[item.Name]].ToString(), out int CurNumValue))
                            {
                                item.SetValue(TempSalary, CurNumValue);
                            }
                            continue;
                        }
                        if (item.Name.Equals("UpDateTime"))
                        {
                            if (DateTime.TryParse(TempJtoken[_CurViewModel.NamesEnCn[item.Name]].ToString(), out DateTime CurDateValue))
                            {
                                item.SetValue(TempSalary, CurDateValue);
                            }
                            continue;
                        }
                        item.SetValue(TempSalary, TempJtoken[_CurViewModel.NamesEnCn[item.Name]].ToString());
                        continue;
                    }
                    if (item.Name.Equals("NameAndAmount"))
                    {
                        for (int ik = 0; ik < _CurViewModel.SalaryItems.Count; ik++)
                        {
                            if (float.TryParse(TempJtoken[_CurViewModel.SalaryItems[ik].Name].ToString(), out float CurFloatValue))
                            {
                                _CurViewModel.SalaryItems[ik].Amount = CurFloatValue;
                            }
                            else
                            {
                                AppFuns.ShowMessage($"“{TempJtoken[_CurViewModel.SalaryItems[ik].Name].ToString()}”应为金额!");
                                return;
                            }
                        }
                        string SalaryJsonStr = JsonConvert.SerializeObject(_CurViewModel.SalaryItems);
                        item.SetValue(TempSalary, SalaryJsonStr);
                    }
                }
                if (string.IsNullOrWhiteSpace(TempSalary.UserId))
                {
                    TempSalary.UserId = AppSet.LoginUser.Id;
                }

                MemberSalaries.Add(TempSalary);
            }
            foreach (Lib.MemberSalary TempSalary in MemberSalaries)
            {
                ExcuteResult excuteResult = await DataMemberSalaryRepository.AddOrUpdate(TempSalary).ConfigureAwait(false);

                if (excuteResult.State == 0)
                {
                    JToken TempJtoken = _CurViewModel.SalaryJArray.Where(x => x["身份证号"].ToString().Equals(TempSalary.MemberId)).FirstOrDefault();
                    if (TempJtoken != null)
                    {
                        TempJtoken["编号"] = excuteResult.Tag;
                    }
                    AddedCount++;
                }
            }

            if (AddedCount > 0)
            {
                if (AddedCount == _CurViewModel.SalaryJArray.Count)
                {
                    AppFuns.ShowMessage("数据保存成功");
                }
                else
                {
                    AppFuns.ShowMessage($"数据部分保存成功{AddedCount}/{_CurViewModel.SalaryJArray.Count}");
                }
            }
            else
            {
                AppFuns.ShowMessage("数据保存失败!");
            }
        }