public IHttpActionResult EditTaxSaving(TaxSavingModel ts)
        {
            DataSet   ds      = TaxSavingsRepository.GetTaxSavingReceipt(ts.EmployeeId, ts.FinancialYear);
            DataTable Results = ds.Tables[0];
            var       query   = Results.AsEnumerable().Select(result => new
            {
                TaxSavingId        = result.Field <Guid>("TaxSavingId"),
                EmployeeId         = result.Field <Guid>("EmployeeId"),
                FullName           = result.Field <string>("FullName"),
                FinancialYear      = result.Field <int>("FinancialYear"),
                TaxSavingType      = result.Field <int>("TaxSavingType"),
                TaxSavingTypeName  = result.Field <string>("TaxSavingTypeName"),
                RecurringFrequency = result.Field <int>("RecurringFrequency"),
                SavingDate         = result.Field <DateTime?>("SavingDate"),
                AccountNumber      = result.Field <string>("AccountNumber"),
                Amount             = result.Field <decimal?>("Amount"),
                TotalAmount        = result.Field <decimal?>("TotalAmount"),
                Remarks            = result.Field <string>("Remarks"),
                ReceiptSubmitted   = result.Field <bool?>("ReceiptSubmitted"),
                EligibleCount      = result.Field <int>("EligibleCount")
            });
            var filterdata = query.Where(m => m.TaxSavingId == ts.TaxSavingId);

            return(Ok(filterdata));
        }
        public IHttpActionResult ExcelExport(TaxSavingModel ts)
        {
            /*string employeeId, string financialYear, string fyText*/
            string        fileName         = Guid.NewGuid().ToString() + ".xlsx";
            string        physicalFileName = HttpRuntime.AppDomainAppPath + "/Log/" + fileName;
            DataSet       ds             = TaxSavingsRepository.GetTaxSavingReceipt(ts.EmployeeId, ts.FinancialYear);
            DataSet       dsList         = new DataSet();
            List <string> strTableHeader = new List <string>();

            System.Data.DataView view           = new System.Data.DataView(ds.Tables[0]);
            DataTable            distinctValues = view.ToTable(true, "EmployeeId", "FullName");

            for (int i = 0; i < distinctValues.Rows.Count; i++)
            {
                DataSet objDsList = TaxSavingsRepository.GetTaxSavingReceiptForExcel((distinctValues.Rows[i]["EmployeeId"].ToString() != "") ? Guid.Parse(distinctValues.Rows[i]["EmployeeId"].ToString()) : Guid.Parse("00000000-0000-0000-0000-000000000000"), ts.FinancialYear);
                objDsList.Tables[0].TableName = distinctValues.Rows[i]["FullName"].ToString();
                dsList.Tables.Add(objDsList.Tables[0].Copy());
                strTableHeader.Add(distinctValues.Rows[i]["FullName"].ToString());
            }
            var        excelHelper       = new ExcelExport();
            Attachment objExcelFile      = new Attachment();
            string     excelSheetHeading = "Tax Savings (FY " + ts.fyText + ")";

            excelHelper.ExportToExcel(physicalFileName, dsList, excelSheetHeading);
            string downloadName = string.Format("Tax Savings -{0:yyyyMMdd-HHmmss}" + ".xlsx", DateTime.Now);

            objExcelFile.FileName    = downloadName;;
            objExcelFile.FileContent = System.IO.File.ReadAllBytes(physicalFileName);
            objExcelFile.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

            return(Ok(objExcelFile));
        }
        public IHttpActionResult DeleteTaxSavingReceipt(TaxSavingModel ts)
        {
            long result;

            result = TaxSavingsRepository.DeleteTaxSavingReceipt(ts.TaxSavingId);
            return(Ok(result));
        }
        public IHttpActionResult UpdateTaxSavingReceipt(TaxSavingModel ts)
        {
            long result;
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            dynamic receiptObj = serializer.Deserialize <object>(ts.jsonData);

            result = TaxSavingsRepository.UpdateTaxSavingReceipt(Guid.Parse(receiptObj["taxSavingId"]), Guid.Parse(receiptObj["employeeId"]), int.Parse(receiptObj["financialYear"]),
                                                                 int.Parse(receiptObj["taxSavingType"]), int.Parse(receiptObj["recurringFrequency"]), (Convert.ToString(receiptObj["savingDate"]) != "") ? DateTime.Parse(receiptObj["savingDate"]) : null,
                                                                 System.Uri.UnescapeDataString(Convert.ToString(receiptObj["accountNumber"])), float.Parse(receiptObj["amount"]), Convert.ToString(receiptObj["remarks"]), int.Parse(receiptObj["eligibleCount"]));
            return(Ok(result));
        }
        public IHttpActionResult GetSavingTypes()
        {
            DataSet savingTypesResult             = TaxSavingsRepository.GetSavingTypes();
            List <SelectListItem> listSavingTypes = savingTypesResult.Tables[0].AsEnumerable()
                                                    .OrderBy(r => r.Field <string>("TaxSavingTypeName"))
                                                    .Select(r => new SelectListItem {
                Text = r.Field <string>(1), Value = r.Field <int>(0).ToString()
            })
                                                    .ToList();

            listSavingTypes.Insert(0, (new SelectListItem {
                Text = "", Value = ""
            }));
            return(Ok(listSavingTypes));
        }
        public IHttpActionResult ApproveTaxSavingReceipt(TaxSavingModel ts)
        {
            long result;
            JavaScriptSerializer serializer   = new JavaScriptSerializer();
            dynamic objReceiptsForApproval    = serializer.Deserialize <object>(ts.jsonData);
            string  receiptsForApprovalString = "";

            for (int i = 0; i < objReceiptsForApproval.Length; i++)
            {
                if (i == 0)
                {
                    receiptsForApprovalString = Convert.ToString(objReceiptsForApproval[i]["TaxSavingId"]);
                }
                else
                {
                    receiptsForApprovalString = receiptsForApprovalString + ',' + Convert.ToString(objReceiptsForApproval[i]["TaxSavingId"]);
                }
            }
            result = TaxSavingsRepository.ApproveTaxSavingReceipt(receiptsForApprovalString);
            return(Ok(result));
        }
        public IHttpActionResult GetTaxSavingReceipt(TaxSavingModel ts)
        {
            DataSet ds = TaxSavingsRepository.GetTaxSavingReceipt(ts.EmployeeId, ts.FinancialYear);

            return(Ok(ds.Tables[0]));
        }