Beispiel #1
0
        public async Task <Guid> CreateNewExpense(ExpenseRequestDTO requestDTO)
        {
            var bankAccount = await _repository.GetByIdAsync <Domain.Model.Account.BankAccount>(requestDTO.BankAccountId);

            var institution = await _repository.GetByIdAsync <Domain.Model.Institution.Institution>(requestDTO.InstitutionId);

            var sector = await _repository.GetByIdAsync <Domain.Model.Sector.Sector>(requestDTO.SectorId);

            if (bankAccount == null || institution == null || sector == null)
            {
                return(Guid.Empty);
            }

            var newInstance = new Domain.Model.Income.Expenses
            {
                Amount         = requestDTO.Amount,
                CurrencyType   = requestDTO.CurrencyType,
                Description    = requestDTO.Description,
                DocumentNumber = requestDTO.DocumentNumber,
                Expiry         = requestDTO.Expiry,
                ExpiryDate     = requestDTO.ExpiryDate,
                Type           = requestDTO.ExpenseType,
                BankAccount    = bankAccount,
                Institution    = institution,
                Sector         = sector
            };

            _repository.Add(newInstance);
            await _repository.CommitAsync();

            return(newInstance.Id);
        }
Beispiel #2
0
        public async Task HandleAsync(CreateBusiness message, IRequestInfo requestInfo)
        {
            IBusinessDocument businessDocument;

            try
            {
                var code = await CheckCode(_numberGenerator.GenerateNumber(6));

                businessDocument = _businessesFactory.CreateBusiness(message.Name, message.TradingName, message.WebAddress,
                                                                     message.HeadContactFirstName, message.HeadContactSecondName,
                                                                     message.HeadContactContactNumber, message.HeadContactEmail, message.HeadOfficePostCode, message.HeadOfficeAddressLine1, message.HeadOfficeAddressLine2, code);


                await _repository.Add(businessDocument);
            }
            catch (VmsException e)
            {
                _logger.LogInformation("Create business rejected: " + e.Code);
                _publisher.PublishEvent(new CreateBusinessRejected(e.Code, e.Message), requestInfo);
                return;
            }

            _logger.LogInformation("Create business succeeded.");
            _publisher.PublishEvent(new BusinessCreated(businessDocument.Id, businessDocument.Code), requestInfo);
        }
Beispiel #3
0
        public void Add(IBusiness business, ILocation location, IUserBusiness userBusiness, IGroup group)
        {
            try
            {
                Lock();

                _businessRepository.Add(business);
                _locationRepository.Add(location);
                _groupRepository.Add(group);

                foreach (var email in business.Members)
                {
                    var userGroup = new UserGroup
                    {
                        Id   = group.Id,
                        Name = group.Name,
                        Role = GroupRoles.Admin
                    };

                    _userRepository.AddBusinessWithEmail(userBusiness, email);
                    _userRepository.AddGroupWithEmail(userGroup, email);
                }
            }
            catch (Exception)
            {
                //TODO: Rollback logic
                throw new Exception("Failed to perform atomic action - " + Desc);
            }
            finally
            {
                Unlock();
            }
        }
Beispiel #4
0
        public Business Save(Business business)
        {
            var bu = _businessRepository.Add(business);

            SaveCommit();
            return(bu);
        }
        public IActionResult Create(BusinessViewModel model)
        {
            var listing    = model.Listing;
            var categories = ListingHelper.GetCategories(listing);

            listing.Categories.AddRange(categories);
            businessRepo.Add(listing);
            return(RedirectToAction("CreateLocation", new { id = model.Listing.Id.ToString() }));
        }
Beispiel #6
0
        public static void SeedBusinesses(IBusinessRepository _businessRepo)
        {
            var businesses = GetSeedBusinessListings();

            // TODO: Finish this with find and replace functionality
            foreach (var business in businesses)
            {
                _businessRepo.Add(business);
            }
        }
Beispiel #7
0
        public async Task <Guid> CreateAsync(InstitutionRequestDTO requestDTO)
        {
            var institution = new Domain.Model.Institution.Institution
            {
                Name         = requestDTO.Name,
                PhoneNumber  = requestDTO.PhoneNumber,
                EmailAddress = requestDTO.EmailAddress,
                Code         = requestDTO.Code
            };

            _repository.Add(institution);
            await _repository.CommitAsync();

            return(institution.Id);
        }
Beispiel #8
0
        public bool Add(Business business)
        {
            if (!business.IsValid())
            {
                return(false);
            }

            _businessRepository.Add(business);
            if (business.Id != 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public async Task <IActionResult> Add(AddCompanyDTO company)
        {
            var user = await _repo.GetUser(company.UserName);

            var companyToAdd = new Company();

            companyToAdd.Name        = company.Name;
            companyToAdd.Description = company.Description;
            companyToAdd.Tags        = company.Tags;
            companyToAdd.CreatedOn   = DateTime.Now;
            companyToAdd.UpdatedOn   = DateTime.Now;
            companyToAdd.UserId      = user.Id;

            _repo.Add <Company>(companyToAdd);

            await _repo.SaveAll();

            return(Ok(company));
        }
Beispiel #10
0
        public ActionResult <AuthData> Post([FromBody] RegisterViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user     = _mapper.Map <User>(model);
            var business = _mapper.Map <Business>(model);

            var emailUnique = _userRepository.IsEmailUnique(model.Email);

            if (emailUnique)
            {
                business.BusinessOwner = new BusinessOwner()
                {
                    User = user
                };

                business.BusinessCategory = new BusinessCategory()
                {
                };

                _userRepository.Add(user);
                _userRepository.Commit();

                _businessRepository.Add(business);
                _businessRepository.Commit();
            }
            else
            {
                business = _businessRepository.GetSingle(x => x.BusinessOwner.User.Auth0UserId == model.Auth0UserId, x => x.BusinessOwner, x => x.BusinessOwner.User);
                user     = business.BusinessOwner.User;
            }

            return(new AuthData()
            {
                BusinessId = business.Id,
                UserId = user.Id
            });
        }
Beispiel #11
0
        public async Task <Guid> CreateNewBankAccountAsync(BankAccountRequestDTO requestDTO)
        {
            Domain.Model.Institution.Institution currentInstitution;
            if (string.IsNullOrEmpty(CurrentInstitutionId))
            {//admin user so , ins id will come from request payload.
                currentInstitution = await _repository.GetByIdAsync <Domain.Model.Institution.Institution>(requestDTO.InstitutionId.Value);
            }
            else
            {//casual user.
                currentInstitution = await _repository.GetByIdAsync <Domain.Model.Institution.Institution>(Guid.Parse(CurrentInstitutionId));
            }

            if (currentInstitution == null)
            {
                return(Guid.Empty);
            }

            var newInstance = new Domain.Model.Account.BankAccount
            {
                BankAccountName        = requestDTO.BankAccountName,
                Institution            = currentInstitution,
                AccountIBAN            = requestDTO.AccountIBAN,
                AccountNo              = requestDTO.AccountNo,
                AccountType            = requestDTO.AccountType,
                BankAccountDescription = requestDTO.BankAccountDescription,
                BankType       = requestDTO.BankType,
                BlockedBalance = requestDTO.BlockedBalance,
                CurrencyType   = requestDTO.CurrencyType,
                TotalBalance   = requestDTO.TotalBalance,
                UsableBalance  = requestDTO.UsableBalance
            };

            _repository.Add(newInstance);
            await _repository.CommitAsync();

            return(newInstance.Id);
        }
Beispiel #12
0
        public IActionResult Registe([FromServices] AppData appData,
                                     string name,
                                     string pwd,
                                     string code,
                                     string invitationCode,
                                     string email,
                                     string address,
                                     string phone,
                                     string mark,
                                     string license)
        {
            var result = new JsonData();

            if (service.Exists(a => (a.Name == name)))
            {
                result.Msg     = "该商户已注册";
                result.Success = false;
                return(Json(result));
            }
            else if (service.Exists(a => (a.Code == code)))
            {
                result.Msg     = "该用户名已注册";
                result.Success = false;
                return(Json(result));
            }
            else
            {
                var userInfo = new Business
                {
                    Name                = name,
                    Password            = UtilHelper.MD5Encrypt(pwd),
                    Code                = code,
                    Email               = email,
                    InvitationCode      = invitationCode,
                    Address             = address,
                    Mobile              = phone,
                    BusinessLicense     = license,
                    RegisterDate        = DateTime.Now,
                    Description         = mark,
                    Freight             = 4,
                    BusinessStartTime   = "06:00",
                    BusinessEndTime     = "21:00",
                    Category            = BusinessCategory.Store,
                    StoreId             = service.GetNextStoreNumber(),
                    ObjectId            = Guid.NewGuid().ToString().ToLower(),
                    Score               = 5,
                    Delivery            = 5,
                    IsEnjoymentActivity = false,
                    DiscountQuantity    = 1,
                    WeChatAppId         = appData.WeChatAppId,
                    WeChatSecret        = appData.WeChatSecret,
                    RefundTemplateId    = appData.Msg_Refund,
                    NewOrderTemplateId  = appData.EventMessageTemplateId,
                    PayServerAppId      = appData.ServerAppId,
                    PayServerKey        = appData.ServerKey,
                    PayServerMchId      = appData.ServerMchId,
                    CertFile            = appData.CertFile
                };
                userInfo.FeyinMemberCode = appData.FeyinMemberCode;
                userInfo.FeyinApiKey     = appData.FeyinApiKey;
                service.Add(userInfo);
                result.Msg     = "注册成功";
                result.Success = true;
                return(Json(result));
            }
        }
Beispiel #13
0
 public IActionResult Create(BusinessListingViewModel model)
 {
     businessRepo.Add(model.Listing);
     return(RedirectToAction("Details", new { id = model.Listing.Id.ToString() }));
 }