public void GivenMemberSalaryEntity_WhenCallGetGetMonthlyExpense_ShouldReturnValue(decimal amount, FrequencyIds frequencyId, decimal expectedResult) { // assign var memberExpensive = new MemberSalary { Amount = amount, PayFrequencyId = (long)frequencyId }; // act var result = memberExpensive.GetMonthlySalary(); // assert result.ShouldBe(expectedResult); }
public static Member CreateMember(long id, IEnumerable <MemberAccount> memberAccounts, MemberExpense memberExpense, MemberSalary memberSalary, string name = "jack", string email = null ) { email ??= $"{Guid.NewGuid()}@zip.test.com"; memberAccounts ??= new MemberAccount[] { }; memberExpense ??= CreateMemberExpense(id + 10, id, FrequencyIds.Month); memberSalary ??= CreateMemberSalary(id + 100, id, FrequencyIds.Month); return(new Member { Id = id, MemberAccounts = memberAccounts.ToArray(), MemberExpense = memberExpense, MemberSalary = memberSalary, ModifiedOn = DateTime.UtcNow, CreatedOn = DateTime.UtcNow, Name = name, Email = email }); }
/// <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("数据保存失败!"); } }