private void LoadRecurringExpense(int id)
 {
     if (_recurringExpense == null)
     {
         _recurringExpense = _recurringExpenseRepository.GetById(id).Result;
     }
 }
Beispiel #2
0
        public bool DeleteRecurringExpense(string expenseId, RecurringExpense recurringExpense)
        {
            var lessonUserId = GetUserLessonId();

            if (!lessonUserId.HasValue)
            {
                return(false);
            }

            lock (_lockObject)
            {
                var recurringExpenses = SaltServiceAgent.GetUserLesson2Results(lessonUserId.Value, LessonSteps.Lesson2.RecurringExpenses).ToDomainObject().RecurringExpenses.ToList();
                recurringExpenses.Remove(recurringExpenses.First(e => e.Equals(recurringExpense)));

                SaltServiceAgent.PostLesson2(
                    new Lesson2()
                {
                    RecurringExpenses = new List <RecurringExpense>(recurringExpenses),
                    User = new User()
                    {
                        UserId = lessonUserId.Value
                    }
                }.ToDataContract()).ToDomainObject();
            }
            return(true);
        }
Beispiel #3
0
        public RecurringExpense PostRecurringExpense(RecurringExpense recurringExpense)
        {
            var lessonUserId = GetUserLessonId();

            if (!lessonUserId.HasValue || recurringExpense.Value <= 0)
            {
                return(null);
            }

            lock (_lockObject)
            {
                var result = SaltServiceAgent.PostLesson2(
                    new Lesson2()
                {
                    RecurringExpenses = new List <RecurringExpense>(SaltServiceAgent.GetUserLesson2Results(lessonUserId.Value, LessonSteps.Lesson2.RecurringExpenses)
                                                                    .ToDomainObject()
                                                                    .RecurringExpenses)
                    {
                        recurringExpense
                    },
                    User = new User()
                    {
                        UserId = lessonUserId.Value
                    }
                }.ToDataContract()).ToDomainObject();

                return(result.RecurringExpenses.First(re => re.Equals(recurringExpense)));
            }
        }
Beispiel #4
0
        /// <summary>
        ///     Updates the specified existing recurring expense .
        /// </summary>
        /// <param name="recurring_expense_id">The recurring_expense_id is the identifier of the recurrence expnse.</param>
        /// <param name="update_info">The update_info is the RecurringExpense object which contains the updation information.</param>
        /// <returns>RecurringExpense object.</returns>
        public RecurringExpense Update(string recurring_expense_id, RecurringExpense update_info)
        {
            var url        = baseAddress + "/" + recurring_expense_id;
            var json       = JsonConvert.SerializeObject(update_info);
            var jsonstring = new Dictionary <object, object>();

            jsonstring.Add("JSONString", json);
            var responce = ZohoHttpClient.put(url, getQueryParameters(jsonstring));

            return(RecurringExpenseParser.getRecurringExpense(responce));
        }
Beispiel #5
0
        /// <summary>
        ///     Creates the new recurring expense.
        /// </summary>
        /// <param name="new_recurring_expense">
        ///     The new_recurring_expense is the recurringExpense object with
        ///     amount_id,paid_through_id,recurrence_name,star_date,recurrence_frequency,amount and repeat_every as mandatory
        ///     attributes.
        /// </param>
        /// <returns>RecurringExpense object.</returns>
        public RecurringExpense Create(RecurringExpense new_recurring_expense)
        {
            var url        = baseAddress;
            var json       = JsonConvert.SerializeObject(new_recurring_expense);
            var jsonstring = new Dictionary <object, object>();

            jsonstring.Add("JSONString", json);
            var responce = ZohoHttpClient.post(url, getQueryParameters(jsonstring));

            return(RecurringExpenseParser.getRecurringExpense(responce));
        }
Beispiel #6
0
        public IActionResult Update([FromBody] RecurringExpense item)
        {
            if (item == null)
            {
                return(BadRequest());
            }

            _service.UpdateRecurringExpense(item);

            return(new NoContentResult());
        }
Beispiel #7
0
        public IActionResult Create([FromBody] RecurringExpense item)
        {
            if (item == null)
            {
                return(BadRequest());
            }

            _service.CreateRecurringExpense(item);

            return(CreatedAtRoute("GetRecurringExpense", new { id = item.id }, item));
        }
Beispiel #8
0
 /// <summary>
 /// To the data contract.
 /// </summary>
 /// <param name="recurringExpense">The recurring expense.</param>
 /// <returns></returns>
 public static ExpenseContract ToDataContract(this RecurringExpense recurringExpense)
 {
     return(new ExpenseContract()
     {
         Name = recurringExpense.Name,
         ExpenseAmount = recurringExpense.Value,
         FrequencyId = recurringExpense.FrequencyId,
         Id = recurringExpense.RecurringExpenseId,
         LessonUserId = recurringExpense.UserId
     });
 }
        internal static RecurringExpense getRecurringExpense(HttpResponseMessage responce)
        {
            var recExp  = new RecurringExpense();
            var jsonObj = JsonConvert.DeserializeObject <Dictionary <string, object> >(responce.Content.ReadAsStringAsync().Result);

            if (jsonObj.ContainsKey("recurring_expense"))
            {
                recExp = JsonConvert.DeserializeObject <RecurringExpense>(jsonObj["recurring_expense"].ToString());
            }
            return(recExp);
        }
Beispiel #10
0
        public void UpdateRecurringExpense(RecurringExpense expense)
        {
            var expenseToUpdate = _context.Expense
                                  .AsNoTracking()
                                  .FirstOrDefault(t => t.id == expense.id);

            if (expenseToUpdate == null)
            {
                throw new ArgumentNullException();
            }

            _context.RecurringExpense.Update(expense);
            _context.SaveChanges();
        }
        public async Task <ResultModel> Update(RecurringExpense recurringExpense)
        {
            var result          = new ResultModel();
            var validatorResult = new RecurringExpenseValidator(_recurringExpenseRepository, _creditCardRepository).Validate(recurringExpense);

            if (validatorResult.IsValid)
            {
                await _recurringExpenseRepository.Update(recurringExpense);
            }
            else
            {
                result.AddNotification(validatorResult.Errors);
            }

            return(result);
        }
        internal static RecurringExpenseList getRecurringExpenseList(HttpResponseMessage responce)
        {
            var recExpList = new RecurringExpenseList();
            var jsonObj    = JsonConvert.DeserializeObject <Dictionary <string, object> >(responce.Content.ReadAsStringAsync().Result);

            if (jsonObj.ContainsKey("recurring_expenses"))
            {
                var recExpArray = JsonConvert.DeserializeObject <List <object> >(jsonObj["recurring_expenses"].ToString());
                foreach (var recExpObj in recExpArray)
                {
                    var recExp = new RecurringExpense();
                    recExp = JsonConvert.DeserializeObject <RecurringExpense>(recExpObj.ToString());
                    recExpList.Add(recExp);
                }
            }
            if (jsonObj.ContainsKey("page_context"))
            {
                var pageContext = new PageContext();
                pageContext             = JsonConvert.DeserializeObject <PageContext>(jsonObj["page_context"].ToString());
                recExpList.page_context = pageContext;
            }
            return(recExpList);
        }
Beispiel #13
0
 public void CreateRecurringExpense(RecurringExpense item)
 {
     item.id = 0;
     _context.RecurringExpense.Add(item);
     _context.SaveChanges();
 }
Beispiel #14
0
        public RecurringExpenseService(ExpenseItContext context, IMapper mapper)
        {
            _mapper  = mapper;
            _context = context;

            if (!_context.RecurringExpense.Any())
            {
                Person    person, person2;
                Frequency f1, f2;
                if (!_context.Person.Any())
                {
                    person = new Person()
                    {
                        name = "Roger"
                    };
                    _context.Person.Add(person);
                    person2 = new Person()
                    {
                        name = "Rosa"
                    };
                    _context.Person.Add(person2);
                    _context.SaveChanges();
                }
                else
                {
                    person  = _context.Person.First();
                    person2 = _context.Person.Skip(1).First();
                }
                if (!_context.Frequency.Any())
                {
                    f1 = new Frequency()
                    {
                        name = "Monthly"
                    };
                    _context.Frequency.Add(f1);
                    f2 = new Frequency()
                    {
                        name = "Bi-Monthly"
                    };
                    _context.Frequency.Add(f2);
                    _context.SaveChanges();
                }
                else
                {
                    f1 = _context.Frequency.First();
                    f2 = _context.Frequency.Skip(1).First();
                }
                var recurringExpense = new RecurringExpense()
                {
                    name      = "Mortgage",
                    person    = person,
                    frequency = f1,
                    amount    = 1000,
                    covered   = true
                };
                _context.RecurringExpense.Add(recurringExpense);
                var recurringExpense2 = new RecurringExpense()
                {
                    name      = "Car Payment",
                    person    = person2,
                    frequency = f2,
                    amount    = 500,
                    covered   = false
                };
                _context.RecurringExpense.Add(recurringExpense2);
                _context.SaveChanges();
            }
        }
Beispiel #15
0
 public bool UpdateRecurringExpense(string id, RecurringExpense recurringExpense)
 {
     return(PostRecurringExpense(recurringExpense) != null);
 }
Beispiel #16
0
 static void Main(string[] args)
 {
     try
     {
         var service = new ZohoBooks();
         service.initialize("{authtoken}", "{organization id}");
         RecurringExpensesApi recurringExpensesApi = service.GetRecurringExpensesApi();
         var parameters = new Dictionary <object, object>();
         parameters.Add("recurrence_name_startswith", "h");
         var recurringExpenses = recurringExpensesApi.GetRecurringExpenses(parameters);
         var recExpId          = recurringExpenses[0].recurring_expense_id;
         if (recurringExpenses != null)
         {
             foreach (var recurringExpense in recurringExpenses)
             {
                 Console.WriteLine("{0},{1},{2}", recurringExpense.account_name, recurringExpense.total, recurringExpense.recurrence_name);
             }
         }
         var recurringExpense1 = recurringExpensesApi.Get(recExpId);
         if (recurringExpense1 != null)
         {
             Console.WriteLine("{0},{1},{2}", recurringExpense1.account_name, recurringExpense1.total, recurringExpense1.recurrence_name);
         }
         var newRecurringExpenseInfo = new RecurringExpense()
         {
             account_id = "{account id}",
             paid_through_account_id = "{account id from which going to pay}",
             recurrence_name         = "rec name",
             start_date           = "2014-02-03",
             recurrence_frequency = "months",
             repeat_every         = 2,
             amount = 1000,
         };
         var newRecurringExpense = recurringExpensesApi.Create(newRecurringExpenseInfo);
         if (newRecurringExpense != null)
         {
             Console.WriteLine("{0},{1},{2}", newRecurringExpense.account_name, newRecurringExpense.total, newRecurringExpense.recurrence_name);
         }
         var updateInfo = new RecurringExpense()
         {
             recurrence_frequency = "weeks",
             repeat_every         = 4,
         };
         var updatedExpense = recurringExpensesApi.Update(recExpId, updateInfo);
         if (updatedExpense != null)
         {
             Console.WriteLine("{0},{1},{2}", updatedExpense.account_name, updatedExpense.total, updatedExpense.recurrence_name);
         }
         var delRecurringExpense = recurringExpensesApi.Delete(recurringExpenses[3].recurring_expense_id);
         Console.WriteLine(delRecurringExpense);
         var stopRecurringExpense = recurringExpensesApi.Stop(recExpId);
         Console.WriteLine(stopRecurringExpense);
         var resumeRecurringExpense = recurringExpensesApi.Resume(recExpId);
         Console.WriteLine(resumeRecurringExpense);
         var childExpenses = recurringExpensesApi.GetExpensesCreated(recExpId, parameters);
         if (childExpenses != null)
         {
             foreach (var childExpense in childExpenses)
             {
                 Console.WriteLine("{0},{1},{2}", childExpense.account_name, childExpense.total, childExpense.date);
             }
         }
         var comments = recurringExpensesApi.GetComments(recExpId);
         if (comments != null)
         {
             foreach (var comment in comments)
             {
                 Console.WriteLine("{0},{1},{2}", comment.comment_id, comment.description, comment.commented_by);
             }
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
     }
     Console.ReadKey();
 }