示例#1
0
 public CollaboratorManagerTests()
 {
     user         = GetNewMockUser();
     expenseStory = GetNewMockPersonalExpenseStory(user.UserId);
     new ExpenseStoryManager(new ExpenseStoryRepository(dbFactory), unitOfWork, null, null).AddExpenseStory(expenseStory);
     collaboratorMgr = new CollaboratorManager(new CollaboratorRepository(dbFactory), unitOfWork);
 }
示例#2
0
        public DollarTrackerResponse <ExpenseStorySummary> Post(ExpenseStory story)
        {
            var response = new DollarTrackerResponse <ExpenseStorySummary>();

            try
            {
                story.ExpenseStoryId = UniqueKeyGenerator.DatePrefixShortKey();
                story.CreatedBy      = UserClaim.UserId;
                story.CreatedUtcDt   = DateTime.UtcNow;
                expenseStoryManager.AddExpenseStory(story);                 //todo: need to do validations--some design pattern

                var collaborator = new Collaborator
                {
                    CollaboratorId = Guid.NewGuid(),
                    ExpenseStoryId = story.ExpenseStoryId,
                    UserId         = UserClaim.UserId,
                    Status         = true,
                    CreatedUtcDt   = DateTime.UtcNow
                };
                collaboratorManager.AddCollaborator(collaborator);
                response.Data = expenseStorySummaryBuilder.Build(story.ExpenseStoryId);
                response.Data.ExpenseStory = story;
            }
            catch (Exception e)
            {
                //todo: log the server error
                response.Success = false;
                response.Message = "Unknown Server error";
            }
            return(response);
        }
示例#3
0
 public void AddExpenseStory(ExpenseStory story)
 {
     if (!expenseStoryRepository.Any(x => x.ExpenseStoryId == story.ExpenseStoryId))
     {
         expenseStoryRepository.Add(story);
         SaveExpenseStory();
     }
 }
        protected ExpenseStory GetNewMockExpenseStory(string expenseStoryTypeId, string userId)
        {
            var expenseStory = new ExpenseStory
            {
                ExpenseStoryId     = Guid.NewGuid().ToString("N").Substring(0, 20),
                ExpenseStoryTypeId = expenseStoryTypeId,
                CreatedBy          = userId,
                StartDt            = DateTime.UtcNow,
                EndDt        = DateTime.UtcNow.AddDays(10),
                CreatedUtcDt = DateTime.UtcNow,
                Income       = (float)Faker.NumberFaker.Number(10000, 100000),
                Budget       = (float)Faker.NumberFaker.Number(1000, 10000)
            };

            return(expenseStory);
        }
        public ExpenseManagerTests()
        {
            user = GetNewMockUser();
            new UserManager(new UserRepository(dbFactory), unitOfWork).AddUser(user);
            expenseStory = GetNewMockPersonalExpenseStory(user.UserId);
            var expenseStoryRepository = new ExpenseStoryRepository(dbFactory);

            new ExpenseStoryManager(expenseStoryRepository, unitOfWork,
                                    new ExpenseManager(new ExpenseRepository(dbFactory), unitOfWork),
                                    new CollaboratorManager(new CollaboratorRepository(dbFactory), unitOfWork)).AddExpenseStory(expenseStory);

            collaborator = GetNewMockCollaborator(user.UserId, expenseStory.ExpenseStoryId);
            dataContext.Collaborator.Add(collaborator);
            dataContext.SaveChanges();
            expenseRepository = new ExpenseRepository(dbFactory);
            expenseManager    = new ExpenseManager(expenseRepository, unitOfWork);
        }
示例#6
0
        public void UpdateExpenseStory(ExpenseStory story)
        {
            var existingExpenseStory = expenseStoryRepository.Get(x => x.ExpenseStoryId == story.ExpenseStoryId);

            if (existingExpenseStory != null)
            {
                if (story.Income.HasValue)
                {
                    existingExpenseStory.Income = story.Income;
                }
                if (story.Budget.HasValue)
                {
                    existingExpenseStory.Budget = story.Budget;
                }
                expenseStoryRepository.Update(story);
                SaveExpenseStory();
            }
        }