Example #1
0
        public void AddOneItem_Test_ReturnsTrue()
        {
            // arrange
            var expenseData     = new ExpenseData();
            var expenseItem     = new ExpenseItem();
            var expenseItem1    = new ExpenseItem(0, "dateString", 0.0, "tag");
            var expenseItemList = new List <ExpenseItem> {
                expenseItem1
            };

            expenseItemList = new List <ExpenseItem> {
                expenseItem1, expenseItem
            };
            var handleExpenseItem = Isolate.Fake.AllInstances <ExpenseItem>(Members.CallOriginal);

            Isolate.WhenCalled(() => handleExpenseItem.ID).WillReturn((-1));
            Isolate.WhenCalled(() => handleExpenseItem.Validate()).WillReturn(true);
            var boolean = expenseData.LoadFromList(expenseItemList);

            // act
            var result = expenseData.AddOneItem(0, "dateString", 0.1, "tag");

            // assert
            Assert.AreEqual(true, result);
            // side affects on expenseData
            Assert.AreEqual(2, expenseData.Items.Count);
            Assert.AreEqual("dateString", expenseData.Items[1].DateString);
            Assert.AreEqual(0.1, expenseData.Items[1].Amount, 0.01);
            Assert.AreEqual("tag", expenseData.Items[1].Tag);
            Assert.AreEqual("<Item><ID>0</ID><Date>dateString</Date><Amount>0.1</Amount><Tag>tag</Tag></Item>", expenseData.Items[1].ToXMLString());
            Assert.AreEqual("0,dateString,0.1,tag", expenseData.Items[1].ToTextString());
        }
Example #2
0
        public string CalculateExpense(string textExtractedFromEmail = "")
        {
            try
            {
                if (textExtractedFromEmail != "" && textExtractedFromEmail != null)
                {
                    //RemoveEmailAddress from msg
                    string processedMsg = _extractDataService.RemoveEmailAddress(textExtractedFromEmail);

                    ////Format and Load msg
                    var xmlDoc = new System.Xml.XmlDocument();
                    xmlDoc.LoadXml("<EmailContent>" + processedMsg + "</EmailContent>");


                    //Extract required information from xml msg
                    ExpenseData ed = _extractDataService.ExtractXMLIslands(xmlDoc);

                    //calculate GST
                    double total = System.Convert.ToDouble(ed.totalwithgst);
                    ed.gst             = _calculationService.CalculateGST(total);
                    ed.totalwithoutgst = _calculationService.CalculateTotalWithoutGST(total);

                    return(JsonConvert.SerializeObject(ed));
                }
            }
            catch (Exception e)
            {
                return(e.Message + " Cannot extract the required field. Message is rejected.");
            }
            return("Email extracted data is empty.");
        }
        public string UpdateExpense(ExpenseData expData)
        {
            int result;

            try
            {
                using (SqlConnection connection = new SqlConnection(DBConstants.EXPENSECALCULATOR_CONNECTIONSTRING))
                {
                    connection.Open();
                    SqlCommand Command = new SqlCommand(DBConstants.UPDATE_EXPENSE, connection);
                    Command.CommandType = CommandType.StoredProcedure;
                    Command.Parameters.Add(new SqlParameter(DBConstants.EXPENSE_ID_PARAM, expData.expenseDataId));
                    Command.Parameters.Add(new SqlParameter(DBConstants.EXPENSE_TYPE_ID_PARAM, expData.expenseTypeId));
                    Command.Parameters.Add(new SqlParameter(DBConstants.STORE_ID_PARAM, expData.purchaseStoreId));
                    Command.Parameters.Add(new SqlParameter(DBConstants.EXPENSE_DATE_PARAM, expData.expenseDate));
                    Command.Parameters.Add(new SqlParameter(DBConstants.AMOUNT_PARAM, expData.spentAmount));

                    result = Command.ExecuteNonQuery();
                    if (result > 0)
                    {
                        return("Successfully updated of employee records");
                    }
                    else
                    {
                        return("Updation failed");
                    }
                }
            }
            catch (Exception exception)
            {
                throw exception;
            }
        }
        public bool CreateExpense(ExpenseData expData)
        {
            int result;

            try
            {
                using (SqlConnection connection = new SqlConnection(DBConstants.EXPENSECALCULATOR_CONNECTIONSTRING))
                {
                    connection.Open();
                    SqlCommand Command = new SqlCommand(DBConstants.CREATE_EXPENSE, connection);
                    Command.CommandType = CommandType.StoredProcedure;
                    // adding parameters into the command object

                    Command.Parameters.Add(new SqlParameter(DBConstants.EXPENSE_TYPE_ID_PARAM, expData.expenseTypeId));
                    Command.Parameters.Add(new SqlParameter(DBConstants.STORE_ID_PARAM, expData.purchaseStoreId));
                    Command.Parameters.Add(new SqlParameter(DBConstants.EXPENSE_DATE_PARAM, expData.expenseDate));
                    Command.Parameters.Add(new SqlParameter(DBConstants.AMOUNT_PARAM, expData.spentAmount));

                    result = Command.ExecuteNonQuery();
                    if (result > 0)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
            }

            catch (Exception exception)
            {
                throw exception;
            }
        }
Example #5
0
        public void NotifyPropertyChanged_Test_NoAsserts()
        {
            // arrange
            var expenseData = new ExpenseData();

            // act
            expenseData.NotifyPropertyChanged("name");
        }
 public DashboardService()
 {
     CurDateTime   = new ExpenseData();
     ColIncomeDS   = new List <ExpenseData>();
     ColExpenseDS  = new List <ExpenseData>();
     TempIncomeDS  = new List <TempExpenseData>();
     TempExpenseDS = new List <TempExpenseData>();
     LineDS        = new List <ExpenseData>();
 }
Example #7
0
        public void GetNextID_Test_Returns4()
        {
            // arrange
            var expenseData = new ExpenseData();

            // act
            var result = expenseData.GetNextID();

            // assert
            Assert.AreEqual(1, result);
        }
Example #8
0
        public void AddOneItem_Test_ReturnsFalse_003()
        {
            // arrange
            var expenseData = new ExpenseData();

            // act
            var result = expenseData.AddOneItem((-1), "dateString", 0, "tag");

            // assert
            Assert.AreEqual(false, result);
        }
Example #9
0
        public void ContainsIDByCallingAddOneItem_Test_ReturnsFalse()
        {
            // arrange
            var expenseData = new ExpenseData();

            // act
            var result = expenseData.AddOneItem(1, "06-06-2019", 2.2, "tag");

            // assert
            Assert.AreEqual(true, result);
        }
Example #10
0
        public void RemoveItemAt_Test_ReturnsTrue()
        {
            // arrange
            var expenseData = new ExpenseData();

            // act
            var result = expenseData.RemoveItemAt(0);

            // assert
            Assert.AreEqual(false, result);
        }
Example #11
0
        public ExpensesController_Tests()
        {
            _expenseRepository = new Mock <IGenericRepository <Expense> >();
            _controller        = new ExpensesController(_mediator.Object, _mapper)
            {
                ControllerContext = { HttpContext = new DefaultHttpContext() }
            };

            _expenseRepository.Setup(x => x.Read()).Returns(ExpenseData.GetExpenses().AsQueryable().BuildMock().Object);

            _mediator.Setup(x => x.Send(It.IsAny <GetUserExpensesQuery>(), It.IsAny <CancellationToken>()))
            .Returns((GetUserExpensesQuery query, CancellationToken cancellationToken) => new GetUserExpensesQueryHandler(_expenseRepository.Object, _mapper).Handle(
                         query, cancellationToken));
        }
Example #12
0
        public void ContainsIDByCallingAddOneItem_Test_ReturnsTrue()
        {
            // arrange
            var expenseData = new ExpenseData();

            // act
            var result = expenseData.AddOneItem((-1), "06-06-2019", 2.2, "tag");

            // assert
            Assert.AreEqual(true, result);
            // side affects on expenseData
            Assert.AreEqual(2, expenseData.GetNextID());
            Assert.AreEqual(1, expenseData.Items.Count);
        }
Example #13
0
        private async void LoadData()
        {
            OpenFileDialog fileDialog = new OpenFileDialog();

            fileDialog.ShowDialog();
            FileName = fileDialog.FileName;
            ExpenseData.Clear();
            //YearWiseExpenses.Clear();

            IList <Expense> Result = await ExcelParser.Parse(FileName);

            await ExpenseQueryHandler.GetDBConnector().ImportDataBase(Result);

            PopulateData();
        }
Example #14
0
        public void LoadFromList_Test_ReturnsFalse()
        {
            // arrange
            var expenseData = new ExpenseData();
            var expenseItem = new ExpenseItem((-1), "dateString", 0.1, "tag");
            var itemList    = new List <ExpenseItem> {
                expenseItem
            };

            // act
            var result = expenseData.LoadFromList(itemList);

            // assert
            Assert.AreEqual(false, result);
        }
Example #15
0
        public ExpenseQueryHandlers_Tests()
        {
            _expenseRepository                  = new Mock <IGenericRepository <Expense> >();
            _expensesBuilder                    = new Mock <ExpensesBuilder>();
            _getUserExpensesQueryHandler        = new GetUserExpensesQueryHandler(_expenseRepository.Object, _mapper);
            _getExpensesSumForDayQueryHandler   = new GetExpensesSumForDayQueryHandler(_expenseRepository.Object, _expensesBuilder.Object);
            _getExpensesSumForMonthQueryHandler =
                new GetExpensesSumForMonthQueryHandler(_expenseRepository.Object, _expensesBuilder.Object);
            _getExpensesSumForYearQueryHandler   = new GetExpensesSumForYearQueryHandler(_expenseRepository.Object, _expensesBuilder.Object);
            _getExpensesSumPerDayForMonthHandler =
                new GetExpensesSumPerDayForMonthHandler(_expenseRepository.Object, _expensesBuilder.Object);

            var expenses = ExpenseData.GetExpenses();

            _expenseRepository.Setup(x => x.Read()).Returns(expenses.AsQueryable().BuildMock().Object);
        }
Example #16
0
        public void CreateExpense()
        {
            bool        recordInserted;
            ExpenseData expenseData = new ExpenseData();

            //expenseData.expenseDataId = 1;
            expenseData.expenseTypeId = 2;
            //expenseData.expenseTypeName = "Grocery";
            expenseData.expenseDate     = Convert.ToDateTime("01/10/2017");
            expenseData.purchaseStoreId = 12;
            expenseData.spentAmount     = 1200;
            recordInserted = _expenseCalculatorRepository.CreateExpense(expenseData);

            //int result = helper.Add(20, 10);
            Assert.AreEqual(recordInserted, true);
        }
Example #17
0
    void AddNewBudget()
    {
        var tempExpenseData = new ExpenseData();

        tempExpenseData.Date = currentDate;

        tempExpenseData.ExpenseName[0]  = "Mortgage";
        tempExpenseData.ExpenseName[1]  = "Car";
        tempExpenseData.ExpenseName[2]  = "Car Insurance";
        tempExpenseData.ExpenseName[3]  = "Gas";
        tempExpenseData.ExpenseName[4]  = "Food";
        tempExpenseData.ExpenseName[5]  = "Phone";
        tempExpenseData.ExpenseName[6]  = "Cable";
        tempExpenseData.ExpenseName[7]  = "Water";
        tempExpenseData.ExpenseName[8]  = "Power";
        tempExpenseData.ExpenseName[9]  = "Utilites";
        tempExpenseData.ExpenseName[10] = "Credit Card 1";
        tempExpenseData.ExpenseName[11] = "Credit Card 2";
        tempExpenseData.ExpenseName[12] = "Credit Card 3";
        tempExpenseData.ExpenseName[13] = "Other";
        tempExpenseData.ExpenseName[14] = "Misc";

        tempExpenseData.ExpenseAmount[0]  = 1500.0f;
        tempExpenseData.ExpenseAmount[1]  = 250.0f;
        tempExpenseData.ExpenseAmount[2]  = 150.0f;
        tempExpenseData.ExpenseAmount[3]  = 400.0f;
        tempExpenseData.ExpenseAmount[4]  = 75.0f;
        tempExpenseData.ExpenseAmount[5]  = 125.0f;
        tempExpenseData.ExpenseAmount[6]  = 50.0f;
        tempExpenseData.ExpenseAmount[7]  = 100.0f;
        tempExpenseData.ExpenseAmount[8]  = 0.0f;
        tempExpenseData.ExpenseAmount[9]  = 0.0f;
        tempExpenseData.ExpenseAmount[10] = 0.0f;
        tempExpenseData.ExpenseAmount[11] = 0.0f;
        tempExpenseData.ExpenseAmount[12] = 0.0f;
        tempExpenseData.ExpenseAmount[13] = 0.0f;
        tempExpenseData.ExpenseAmount[14] = 0.0f;

        MonthlyExpenseData.Add(tempExpenseData);

        UpdateMonthlyExpenses();

        UserBlobManager.GetComponent <UserBlobManager>().MonthlyExpenseData = MonthlyExpenseData;
        UserBlobManager.GetComponent <UserBlobManager>().SaveAccountData();
    }
Example #18
0
        public void Test_CreateExpense()
        {
            bool recordInserted;
            var  mock = new Mock <ExpenseCalculatorRepository>();



            ExpenseData expenseData = new ExpenseData();

            expenseData.expenseTypeId   = 1;
            expenseData.purchaseStoreId = 2;
            expenseData.expenseDate     = Convert.ToDateTime("01/02/2017");
            expenseData.spentAmount     = 290;
            recordInserted = mock.Object.CreateExpense(expenseData);


            Assert.AreEqual(recordInserted, true);
        }
Example #19
0
        public void LoadFromList_Test_ReturnsTrue()
        {
            // arrange
            var expenseData = new ExpenseData();
            var expenseItem = new ExpenseItem((-1), "dateString", 0.1, "tag");
            var itemList    = new List <ExpenseItem> {
                expenseItem
            };
            var handleExpenseItem = Isolate.Fake.AllInstances <ExpenseItem>(Members.CallOriginal);

            Isolate.WhenCalled(() => handleExpenseItem.Validate()).WillReturn(true);

            // act
            var result = expenseData.LoadFromList(itemList);

            // assert
            Assert.AreEqual(true, result);
            // side affects on expenseData
            Assert.AreEqual(1, expenseData.Items.Count);
        }
Example #20
0
        public void AddOneItem_Test_ReturnsFalse_004()
        {
            // arrange
            var expenseData     = new ExpenseData();
            var expenseItem     = new ExpenseItem(0, "dateString", 0.0, "tag");
            var expenseItem1    = new ExpenseItem(0, "dateString", 0.0, "tag");
            var expenseItem2    = new ExpenseItem();
            var expenseItemList = new ObservableCollection <ExpenseItem> {
                expenseItem, expenseItem1, expenseItem2
            };

            expenseData.Items = expenseItemList;
            var handleExpenseItem = Isolate.Fake.AllInstances <ExpenseItem>();

            Isolate.WhenCalled(() => handleExpenseItem.Validate()).WillReturn(true);

            // act
            var result = expenseData.AddOneItem(0, "dateString", 0.0, "tag");

            // assert
            Assert.AreEqual(false, result);
        }
        public void LoadExpenseItems_Test_ReturnsFalse()
        {
            // arrange
            var expenseViewer            = new ExpenseViewer();
            var propertyChangedWasRaised = false;

            expenseViewer.PropertyChanged += (a, b) => propertyChangedWasRaised = true;
            var expenseData = new ExpenseData();
            var propertyChangedWasRaised1 = false;

            expenseData.PropertyChanged += (a, b) => propertyChangedWasRaised1 = true;
            var items = expenseData.Items;

            expenseData.Items          = items;
            expenseViewer.ExpenseTable = expenseData;
            var propertyChangedWasRaised2 = false;

            expenseViewer.PropertyChanged += (a, b) => propertyChangedWasRaised2 = true;
            var propertyChangedWasRaised3 = false;

            expenseViewer.PropertyChanged += (a, b) => propertyChangedWasRaised3 = true;
            var fileLoader = new TxtFileLoadSave();

            Isolate.WhenCalled(() => File.Exists(null)).WillReturn(true);
            var expenseItem     = new ExpenseItem();
            var expenseItemList = new List <ExpenseItem> {
                expenseItem
            };

            Isolate.WhenCalled(() => fileLoader.LoadFromFile(null)).WillReturn(expenseItemList);

            // act
            var result = expenseViewer.LoadExpenseItems(fileLoader, "Unable to load any data");

            // assert
            Assert.AreEqual(false, result);
        }
Example #22
0
        private void generateReport()
        {
            expenseAdd();
            ExpenseData   reportDetails = new ExpenseData();
            DataTable     dataTable     = reportDetails.ExpenseTable;
            ExpenseReport Report        = new ExpenseReport();

            readCompanyDetails();
            DataRow drow = dataTable.NewRow();

            drow["CompanyName"]    = companyName;
            drow["CompanyDetails"] = companyDetails;
            string[] fDate = Regex.Split(fromDate.ToString(), " ");
            drow["DateFrom"] = fDate[0];
            string[] tDate = Regex.Split(toDate.ToString(), " ");
            drow["DateTo"] = tDate[0];
            dataTable.Rows.Add(drow);
            storeLists();
            for (int i = 0; i < expenseNameList.Count; i++)
            {
                DataRow dr = dataTable.NewRow();
                dr["ExpenseName"] = expenseNameList[i];
                string[] eDate = Regex.Split(expenseDateList[i], " ");
                dr["ExpenseDate"]   = eDate[0];
                dr["ExpenseAmount"] = expenseAmountList[i];
                dataTable.Rows.Add(dr);
            }
            DataRow drr = dataTable.NewRow();

            drr["ExpenseNumber"] = expenseNameList.Count;
            drr["TotalExpense"]  = expenseAmountList.Sum();
            dataTable.Rows.Add(drr);
            Report.Database.Tables["ExpenseTable"].SetDataSource((DataTable)dataTable);
            expenseReportViewer.ViewerCore.ReportSource = Report;
            Report.Refresh();
        }
Example #23
0
        public ExpenseData ExtractXMLIslands(XmlDocument xmlDoc)
        {
            //Check for Total node
            if (xmlDoc.SelectSingleNode("//total") == null)
            {
                throw new InvalidOperationException("xmlnode total is missing.");
            }

            //Assign model properties
            ExpenseData ed = new ExpenseData();

            if (xmlDoc.SelectSingleNode("//cost_centre") != null)
            {
                ed.costcenter = xmlDoc.SelectSingleNode("//cost_centre").InnerText;
            }

            ed.paymentmenthod = xmlDoc.SelectSingleNode("//payment_method").InnerText;;
            ed.description    = xmlDoc.SelectSingleNode("//description").InnerText;;
            ed.vendor         = xmlDoc.SelectSingleNode("//vendor").InnerText;;
            ed.date           = xmlDoc.SelectSingleNode("//date").InnerText;
            ed.totalwithgst   = xmlDoc.SelectSingleNode("//total").InnerText;

            return(ed);
        }
 public string UpdateExpense(ExpenseData expData)
 {
     return(_expenseCalculatorRepository.UpdateExpense(expData));
 }
 public bool CreateExpense(ExpenseData expData)
 {
     return(_expenseCalculatorRepository.CreateExpense(expData));
 }
        public ExpenseData GetExpenseDetails(int id)
        {
            //errorCode = null;
            ExpenseData expData = null;

            try
            {
                using (SqlConnection connection = new SqlConnection(DBConstants.EXPENSECALCULATOR_CONNECTIONSTRING))
                {
                    connection.Open();
                    SqlCommand Command = new SqlCommand(DBConstants.GET_EXPENSE_DETAILS_ID, connection);
                    Command.CommandType = CommandType.StoredProcedure;

                    // adding parameters into the command object

                    Command.Parameters.Add(new SqlParameter(DBConstants.EXPENSE_ID_PARAM, Convert.ToInt32(id)));
                    using (SqlDataReader dataReader = Command.ExecuteReader())
                    {
                        expData = new ExpenseData();
                        while (dataReader.Read())
                        {
                            if (!Convert.IsDBNull(dataReader[DBConstants.EXPENSE_TYPE_ID_COLUMN]))
                            {
                                expData.expenseTypeId = (int)dataReader[DBConstants.EXPENSE_TYPE_ID_COLUMN];
                            }

                            if (!Convert.IsDBNull(dataReader[DBConstants.STORE_ID_COLUMN]))
                            {
                                expData.purchaseStoreId = (int)dataReader[DBConstants.STORE_ID_COLUMN];
                            }

                            if (!Convert.IsDBNull(dataReader[DBConstants.EXPENSE_DATE_COLUMN]))
                            {
                                expData.expenseDate = (DateTime)dataReader[DBConstants.EXPENSE_DATE_COLUMN];
                            }

                            if (!Convert.IsDBNull(dataReader[DBConstants.AMOUNT_COLUMN]))
                            {
                                expData.spentAmount = Convert.ToDouble(dataReader[DBConstants.AMOUNT_COLUMN]);
                            }
                            if (!Convert.IsDBNull(dataReader[DBConstants.EXPENSE_ID_COLUMN]))
                            {
                                expData.expenseDataId = (int)(dataReader[DBConstants.EXPENSE_ID_COLUMN]);
                            }
                            if (!Convert.IsDBNull(dataReader[DBConstants.EXPENSE_TYPE_NAME_COLUMN]))
                            {
                                expData.expenseTypeName = dataReader[DBConstants.EXPENSE_TYPE_NAME_COLUMN].ToString();
                            }
                            if (!Convert.IsDBNull(dataReader[DBConstants.STORE_NAME_COLUMN]))
                            {
                                expData.purchaseStoreName = dataReader[DBConstants.STORE_NAME_COLUMN].ToString();
                            }
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                Utilities.HandleError(exception);
                //errorCode = MessageConstants.GET_EXPENSE_DETAILS_ERROR;
            }
            return(expData);
        }
        public List <ExpenseData> GetExpenses(int expType, DateTime startDate, DateTime endDate)
        {
            //errorCode = null;
            List <ExpenseData> expenseCollection = null;
            ExpenseData        expData           = null;

            try
            {
                using (SqlConnection connection = new SqlConnection(DBConstants.EXPENSECALCULATOR_CONNECTIONSTRING))
                {
                    connection.Open();

                    SqlCommand Command = new SqlCommand(DBConstants.GET_ITEMISED_EXPENSES, connection);
                    Command.CommandType = CommandType.StoredProcedure;
                    // adding parameters into the command object

                    Command.Parameters.Add(new SqlParameter(DBConstants.EXPENSE_TYPE_ID_PARAM, expType));
                    Command.Parameters.Add(new SqlParameter(DBConstants.START_DATE_PARAM, startDate));
                    Command.Parameters.Add(new SqlParameter(DBConstants.END_DATE_PARAM, endDate));


                    expenseCollection = new List <ExpenseData>();
                    using (SqlDataReader dataReader = Command.ExecuteReader())
                    {
                        expenseCollection = new List <ExpenseData>();

                        while (dataReader.Read())
                        {
                            expData = new ExpenseData();

                            if (!Convert.IsDBNull(dataReader[DBConstants.EXPENSE_ID_COLUMN]))
                            {
                                expData.expenseDataId = (int)(dataReader[DBConstants.EXPENSE_ID_COLUMN]);
                            }

                            if (!Convert.IsDBNull(dataReader[DBConstants.EXPENSE_TYPE_ID_COLUMN]))
                            {
                                expData.expenseTypeId = (int)dataReader[DBConstants.EXPENSE_TYPE_ID_COLUMN];
                            }

                            if (!Convert.IsDBNull(dataReader[DBConstants.EXPENSE_TYPE_NAME_COLUMN]))
                            {
                                expData.expenseTypeName = dataReader[DBConstants.EXPENSE_TYPE_NAME_COLUMN].ToString();
                            }

                            if (!Convert.IsDBNull(dataReader[DBConstants.STORE_ID_COLUMN]))
                            {
                                expData.purchaseStoreId = (int)dataReader[DBConstants.STORE_ID_COLUMN];
                            }

                            if (!Convert.IsDBNull(dataReader[DBConstants.STORE_NAME_COLUMN]))
                            {
                                expData.purchaseStoreName = dataReader[DBConstants.STORE_NAME_COLUMN].ToString();
                            }

                            if (!Convert.IsDBNull(dataReader[DBConstants.EXPENSE_DATE_COLUMN]))
                            {
                                expData.expenseDate = (DateTime)dataReader[DBConstants.EXPENSE_DATE_COLUMN];
                            }

                            if (!Convert.IsDBNull(dataReader[DBConstants.AMOUNT_COLUMN]))
                            {
                                expData.spentAmount = Convert.ToDouble(dataReader[DBConstants.AMOUNT_COLUMN]);
                            }

                            expenseCollection.Add(expData);
                            expData = null;
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                Utilities.HandleError(exception);
                //errorCode = MessageConstants.GET_EXPENSES_ERROR;
            }
            return(expenseCollection);
        }
Example #28
0
 private void FilterData()
 {
     ExpenseData.Clear();
     TotalValue = string.Empty;
 }
        public AddExpensePage(DateTime dateTime, Expense expense = null)
        {
            try
            {
                #region Page
                Title = "Add Expense";

                var toolSave = new ToolbarItem
                {
                    Text = "Save"
                };
                ToolbarItems.Add(toolSave);
                #endregion

                #region Controls
                txtAmount = new Entry
                {
                    Keyboard = Keyboard.Numeric
                };

                txtDescription = new Entry
                {
                    Keyboard = Keyboard.Chat
                };

                dtpkr = new DatePicker
                {
                    Date   = dateTime.Date,
                    Format = "D"
                };
                tmpkr = new TimePicker
                {
                    Time = DateTime.Now.TimeOfDay
                };
                #endregion

                #region Container
                Content = new StackLayout
                {
                    Spacing  = 10,
                    Padding  = 16,
                    Children =
                    {
                        new Label
                        {
                            Text      = "Amount",
                            TextColor = Colors.Black25,
                            FontSize  = Styles.FontSmall
                        },
                        txtAmount,
                        new Label
                        {
                            Margin    = new Thickness(0, 16, 0, 0),
                            Text      = "Description",
                            TextColor = Colors.Black25,
                            FontSize  = Styles.FontSmall
                        },
                        txtDescription,
                        new Label
                        {
                            Margin    = new Thickness(0, 16, 0, 0),
                            Text      = "Date",
                            TextColor = Colors.Black25,
                            FontSize  = Styles.FontSmall
                        },
                        dtpkr,
                        new Label
                        {
                            Margin    = new Thickness(0, 16, 0, 0),
                            Text      = "Time",
                            TextColor = Colors.Black25,
                            FontSize  = Styles.FontSmall
                        },
                        tmpkr
                    }
                };
                #endregion

                #region Gestures/Events
                txtAmount.Focus();

                txtAmount.Completed += (sender, args) =>
                {
                    txtDescription.Focus();
                };

                txtDescription.Completed += (sender, args) =>
                {
                    dtpkr.Focus();
                };

                toolSave.Clicked += (sender, args) =>
                {
                    try
                    {
                        var    amount      = txtAmount.Text;
                        double dAmount     = 0.00;
                        var    description = txtDescription.Text;

                        if (!string.IsNullOrEmpty(amount))
                        {
                            bool isValidAmount = Double.TryParse(amount, out dAmount);

                            if (isValidAmount && dAmount <= 0)
                            {
                                isValidAmount = false;
                            }

                            if (!isValidAmount)
                            {
                                DisplayAlert("Warning", "You must enter valid amount.", "Ok");
                                return;
                            }
                        }
                        else
                        {
                            DisplayAlert("Warning", "You must enter amount.", "Ok");
                            return;
                        }

                        if (string.IsNullOrEmpty(description))
                        {
                            description = "--NO DESCRIPTION--";
                        }

                        var data = new ExpenseData();
                        if (expense == null)
                        {
                            expense = new Expense();
                        }

                        expense.Amount      = dAmount;
                        expense.Description = description;
                        expense.DateTime    = dtpkr.Date + tmpkr.Time;

                        data.Save(expense);

                        Navigation.PopAsync(true);
                    }
                    catch (Exception ex)
                    {
                        Utils.LogMessage("AddExpensePage.Save()", ex);
                    }
                };
                #endregion

                //Load data if Edit
                if (expense != null)
                {
                    txtAmount.Text = expense.Amount.ToString();
                    if (expense.Description == "--NO DESCRIPTION--")
                    {
                        txtDescription.Text = string.Empty;
                    }
                    else
                    {
                        txtDescription.Text = expense.Description;
                    }
                    dtpkr.Date = expense.DateTime.Date;
                    tmpkr.Time = expense.DateTime.TimeOfDay;
                }
            }
            catch (Exception ex)
            {
                Utils.LogMessage("AddExpensePage()", ex);
            }
        }