public void DeteleAndPersistOtherIncome() { //Prepare Other Income var expectedOtherIncome = CreateOtherIncome(); mTaxReturnData.TaxData = JsonConvert.SerializeObject(expectedOtherIncome); //Persist Other Income mUserData.userId = mUserId; mUserData.TaxReturnData = JsonConvert.SerializeObject(mTaxReturnData); var expectedOtherIncomeData = mOtherIncomeRepository.PersistOtherIncome(mUserData); //Delete Other Income var userDTO = new UserDTO { UserId = mUserId, UserDataId = expectedOtherIncomeData.Item1 }; const OtherIncomeType otherIncomeType = OtherIncomeType.AlaskaDividendIncome; mOtherIncomeRepository.DeleteAndPersistOtherIncome(userDTO.UserId, userDTO.UserDataId, otherIncomeType); //Get Other Income string taxObject = mTaxReturnRepository.GetTaxReturnDatabyUserDataId(expectedOtherIncomeData.Item1, mUserId); var actualOtherIncome = JsonConvert.DeserializeObject <BusinessObject.Tax1040>(taxObject).Income.OtherIncome; Assert.IsNull(actualOtherIncome.AlaskaPermanentFundDividend); }
/// <summary> /// Delete and then Persist Form1099G. /// </summary> /// <param name="userId"></param> /// <param name="userDataId"></param> /// <param name="form1099GId"></param> /// <param name="errorMessageList"></param> public void DeleteAndPersistOtherIncome(long userId, long userDataId, OtherIncomeType otherIncomeType) { JTL.Tax1040.BusinessObject.Tax1040 taxObject; try { //Retrieving TaxObject from database taxObject = Utilities.GetTaxObjectByUserIdAndUserDataId(userId, userDataId); //Converting Json to Form1099G by DeSerializing if (taxObject != null && taxObject.Income != null && taxObject.Income.OtherIncome != null) { switch (otherIncomeType) { case OtherIncomeType.SocialSecurityAndRailRoadBenefits: taxObject.Income.OtherIncome.SSB = null; taxObject.Income.OtherIncome.RRB = null; taxObject.Income.OtherIncome.HasSsbAndRrb = false; // Clear the Error messages messageRepository.ClearErrorMessages(taxObject.ErrorMessages, Constants.TOPIC_OTHER_INCOME_SSB_RRB); //Vincent - 17 June, 2014 - Clear Eligibility HardStopper Errors. messageRepository.ClearErrorMessages(taxObject.ErrorMessages, Constants.TOPIC_OTHER_INCOME, 0, "OtherIncome_ER2"); //Yogalakshmi - 2nd July 2014 - To clear the datas in SSB & RRB Worksheet when the records are deleted. if (taxObject.F1040EZ != null && taxObject.F1040EZ.F1040EZWorkSheets != null && taxObject.F1040EZ.F1040EZWorkSheets.SSBWorkSheet != null) { taxObject.F1040EZ.F1040EZWorkSheets.SSBWorkSheet = null; Utilities.PersistTaxObject(userId, userDataId, taxObject); } break; case OtherIncomeType.AlaskaDividendIncome: taxObject.Income.OtherIncome.AlaskaPermanentFundDividend = null; taxObject.Income.OtherIncome.HasAlaskaPermanantFund = false; // Clear the Error messages messageRepository.ClearErrorMessages(taxObject.ErrorMessages, Constants.TOPIC_OTHER_INCOME_Alaska); break; //Added by prasana on 15.07.2014 after Income spec update 2.3 case OtherIncomeType.StateTaxRefund: taxObject.Income.OtherIncome.StateOrLocalIncomeTaxRefunds = null; taxObject.Income.OtherIncome.HasStateTaxRefund = false; taxObject.Income.OtherIncome.HasStateAndLocalTaxDeductionPriorYear = false; // Clear the Error messages messageRepository.ClearErrorMessages(taxObject.ErrorMessages, Constants.TOPIC_OTHER_INCOME_State_And_Local); break; } //10Jul2014 Sathish added coded to check Taxable Income Eligibility dynamic input = new Microsoft.Activities.Extensions.WorkflowArguments(); input.Tax1040Object = taxObject; //Obtain the List of Error Messages from DB. //var errorMessagesFromDB = messageRepository.GetErrorMessages(); var errorMessagesFromDB = HttpRuntime.Cache["ErrorMessageCollection"] as Dictionary <string, ErrorMessage>; var errorMessagesAll = new ErrorMessages(errorMessagesFromDB); //Assisn error message list into workflow input param. input.ErrorMessages = errorMessagesAll; //10Jul2014 Sathish added coded to check Taxable Income Eligibility taxObject.ErrorMessages.RemoveAll(em => em.ErrorCode == Constants.TAX_AND_WRAP_UP_TAXABLE_INCOME); var taxableIncome = Microsoft.Activities.Extensions.WorkflowArguments.FromDictionary(WorkflowInvoker.Invoke (new F1040EZTaxableIncomeEligibilityCheck(), input)); //02-Sep-2014 Bhavani Audit functionality implementation var topicName = string.Empty; switch (otherIncomeType) { case OtherIncomeType.AlaskaDividendIncome: topicName = Constants.TOPIC_OTHER_INCOME_Alaska; break; case OtherIncomeType.StateTaxRefund: topicName = Constants.TOPIC_OTHER_INCOME_State_And_Local; break; case OtherIncomeType.SocialSecurityAndRailRoadBenefits: topicName = Constants.TOPIC_OTHER_INCOME_SSB_RRB; break; } var description = "Delete OtherIncome: " + otherIncomeType + ", ClassName: {0}, Method Name: {1}"; Utilities.PersistAuditInfo(userId, userDataId, description, GetType().Name, Constants.Tab_INCOME, topicName); } //Persist latest TaxObject. taxReturnDataService.PersistTaxReturnData(userId, string.Empty, Utilities.ConvertTaxObjectToJSON(taxObject), string.Empty, userDataId); } catch (Exception ex) { throw ex; } }