Ejemplo n.º 1
0
 public static int Create(UserModel user, EntityDecisionOption option, int votepower)
 => ExecuteScalarInt(
     @"INSERT INTO entity_decision_votes(guid, user_id, option_id, votepower)
                         VALUES (@guid, @user_id, @option_id, @votepower);
                         SELECT currval('entity_decision_votes_id_seq');"
     , new { guid = Guid.NewGuid().ToString(), user_id = user.id, option_id = option.id, votepower }
     );
Ejemplo n.º 2
0
 public static FundingTransaction Create(
     UserModel from, int entityId, EntityType entityType, decimal amount, CurrencyType currencyType,
     string note = null
     )
 {
     return(Find(FundingTransaction.Create(from, entityId, entityType, null, amount, currencyType)));
 }
Ejemplo n.º 3
0
 public EntityDecisionVote UserVote(UserModel user)
 {
     return(Connection().Query <EntityDecisionVote>(
                "SELECT * FROM entity_decision_votes WHERE user_id = @user_id AND option_id = @option_id LIMIT 1",
                new { user_id = user.id, option_id = id }
                ).FirstOrDefault());
 }
Ejemplo n.º 4
0
        public static (Project project, Repo repo) ImportProject(User me, string originId)
        {
            var  externalRepo = GetClient().Repository.Get(Convert.ToInt64(originId)).Result;
            User creator      = null;

            if (me != null)
            {
                var token = me.ServiceAccessToken(ServiceType.GitHub);

                if (token.origin_user_id == "")
                {
                    GitHubUserUtils.UpdateOriginUserId(me);
                }

                var originUserId = token.origin_user_id;

                creator = externalRepo.Owner.Id == Convert.ToInt64(originUserId) ? me : null;
            }

            Repo repository = RepoRepository.CreateAndGet(
                me, externalRepo.Name, externalRepo.HtmlUrl, RepoServiceType.GitHub, externalRepo.Id.ToString()
                );

            var project = ProjectRepository.FindOrCreate(repository.title, creator, repository);

            if (externalRepo.Description != null)
            {
                project.UpdateCol("description", externalRepo.Description);
            }

            return(project, repository);
        }
Ejemplo n.º 5
0
 public static int Create(UserModel user, Project.Project project)
 => ExecuteScalarInt(
     @"INSERT INTO users_votepower(guid, user_id, project_id)
                 VALUES (@guid, @user_id, @project_id);
                 SELECT currval('users_votepower_id_seq');"
     , new { guid = Guid.NewGuid().ToString(), user_id = user.id, project_id = project.id }
     );
Ejemplo n.º 6
0
        public static ProjectModel FindOrCreate(string name, UserModel creator, RepoModel repository)
        {
            var project = ProjectModel.FindBy("repository_id", repository.id) ??
                          ProjectModel.Find(ProjectModel.Create(name, creator, repository));

            ProjectSetUp.Run(project, creator);
            return(project);
        }
Ejemplo n.º 7
0
 public static FundingTransaction[] Get(
     UserModel user, int limit = 10
     )
 => Connection().Query <FundingTransaction>(
     @"SELECT * FROM funding_transactions
         WHERE from_user_id = @from_user_id LIMIT @limit",
     new { from_user_id = user.id, limit }
     ).ToArray();
Ejemplo n.º 8
0
 public static ProjectTeamMemberModel Create(ProjectModel project = null, UserModel user = null)
 {
     user    = user ?? UserFaker.Create();
     project = project ?? ProjectFaker.Create();
     return(ProjectTeamMemberRepository.CreateAndGet(
                project,
                user
                ));
 }
Ejemplo n.º 9
0
 public static Board Find(ProjectModel project, UserModel creator)
 {
     return(Connection().Query <Board>(
                "SELECT * FROM boards WHERE project_id = @project_id AND creator_id = @creator_id  LIMIT 1",
                new {
         project_id = project.id, creator_id = creator.id
     }
                ).FirstOrDefault());
 }
Ejemplo n.º 10
0
 public static Card Find(string name, UserModel creator, BoardColumnModel column)
 {
     return(Connection().Query <Card>(
                "SELECT * FROM cards WHERE name = @name AND creator_id = @creator_id AND column_id = @column_id  LIMIT 1",
                new {
         name, creator_id = creator.id, column_id = column.id
     }
                ).FirstOrDefault());
 }
Ejemplo n.º 11
0
 public static int Create(string name, UserModel creator = null, RepoModel repo = null)
 {
     return(ExecuteScalarInt(
                @"INSERT INTO public.projects(guid, name, creator_id, repository_id)
         VALUES (@guid, @name, @creator_id, @repository_id); SELECT currval('projects_id_seq');"
                , new {
         guid = Guid.NewGuid().ToString(), name, creator_id = creator?.id, repository_id = repo?.id ?? 0
     }
                ));
 }
Ejemplo n.º 12
0
 public static ProjectModel Create(UserModel user = null, RepoModel repository = null)
 {
     user       = user ?? UserFaker.Create();
     repository = repository ?? RepoFaker.Create();
     return(ProjectRepository.FindOrCreate(
                "repoName_" + Rand.SmallInt(),
                user,
                repository
                ));
 }
Ejemplo n.º 13
0
        public static bool IsExist(ProjectModel project, UserModel user)
        {
            var res = Connection().ExecuteScalar <bool>(
                "SELECT COUNT(1) FROM project_team_members WHERE project_id = @project_id AND user_id = @user_id",
                new {
                project_id = project.id, user_id = user.id
            });

            return(res);
        }
Ejemplo n.º 14
0
 public static int ActiveCount(UserModel user)
 => ExecuteScalarInt(
     $@"SELECT COUNT(*) FROM invoices
             WHERE user_id = @user_id 
             AND status IN ({StringUtils.Implode(new [] {
             InvoiceStatus.Created.ToString(),
             InvoiceStatus.RequiresConfirmation.ToString()
         }, ", ", true)})",
     new { user_id = user.id }
     );
Ejemplo n.º 15
0
 public static int ActiveCount(UserModel user, int entityId, EntityType type)
 => ExecuteScalarInt(
     $@"SELECT COUNT(*) FROM invoices
             WHERE user_id = @user_id AND entity_id = @entityId AND entity_type = '{type.ToString()}'
             AND status IN ({StringUtils.Implode(new [] {
             InvoiceStatus.Created.ToString(),
             InvoiceStatus.RequiresConfirmation.ToString()
         }, ", ", true)})",
     new { user_id = user.id, entityId, type }
     );
Ejemplo n.º 16
0
 public static BoardModel Create(UserModel user = null)
 {
     user = user ?? UserFaker.Create();
     return(BoardRepository.CreateAndGet(
                "boardName_" + Rand.SmallInt(),
                "description" + Rand.SmallInt(),
                ProjectFaker.Create(user),
                user
                ));
 }
Ejemplo n.º 17
0
 public static Invoice[] GetForUserByStatuses(
     UserModel user, InvoiceStatus[] enumStatuses, int limit = 10, int offset = 0
     )
 => Connection().Query <Invoice>(
     $@"SELECT * FROM invoices
             WHERE user_id = @user_id 
             AND status IN ({StringUtils.Implode(enumStatuses.Select(x => x.ToString()).ToArray(), ",", true)})
             ORDER BY id DESC
             OFFSET @offset LIMIT @limit",
     new { user_id = user.id, offset, limit }
     ).ToArray();
Ejemplo n.º 18
0
        public static BoardColumnModel Create(UserModel user = null)
        {
            user = user ?? UserFaker.Create();
            var board = BoardFaker.Create(user);

            return(BoardColumnRepository.CreateAndGet(
                       "boardColumnName_" + Rand.SmallInt(),
                       board,
                       Convert.ToInt16(Rand.IntRange(0, 20))
                       ));
        }
Ejemplo n.º 19
0
 public static int Create(
     UserModel user, CurrencyType currencyType, decimal setBalance = 0
     )
 => ExecuteScalarInt(
     $@"INSERT INTO user_balances(guid, user_id, currency_type, balance)
         VALUES (@guid, @user_id, '{currencyType.ToString()}', @balance);
         SELECT currval('user_balances_id_seq');"
     , new {
     guid = Guid.NewGuid().ToString(), user_id = user.id, balance = setBalance
 }
     );
Ejemplo n.º 20
0
 public static CardModel Create(UserModel user = null)
 {
     user ??= UserFaker.Create();
     return(CardRepository.CreateAndGet(
                "cardName_" + Rand.SmallInt(),
                "description" + Rand.SmallInt(),
                Rand.IntRange(0, 100),
                BoardColumnFaker.Create(user),
                user
                ));
 }
Ejemplo n.º 21
0
        public static UserModel Create()
        {
            var rand  = new Random();
            var email = Rand.RandomString() + "@mail.com";
            var id    = UserModel.Create(
                email,
                "test-login" + Rand.RandomString(),
                Guid.NewGuid().ToString()
                );

            return(UserRepository.Find(id));
        }
Ejemplo n.º 22
0
 public static int Create(
     UserModel user, int entityId, EntityType entityType, decimal amount, CurrencyType currencyType, InvoiceStatus status,
     CurrencyWallet wallet
     )
 => ExecuteScalarInt(
     $@"INSERT INTO invoices(guid, user_id, entity_id, entity_type, amount, currency_type, status, wallet_id, updated_at) 
         VALUES (@guid, @user_id, @entity_id, '{entityType.ToString()}', @amount, '{currencyType.ToString()}', '{status.ToString()}', @wallet_id, CURRENT_TIMESTAMP); 
         SELECT currval('invoices_id_seq');"
     , new {
     guid = Guid.NewGuid().ToString(), user_id = user.id, entity_id = entityId, amount, wallet_id = wallet.id
 }
     );
Ejemplo n.º 23
0
 public static FundingTransaction CreateDeposit(
     UserModel from, Invoice invoice
     )
 {
     if (invoice.entity_type != EntityType.UserBalance)
     {
         throw new Exception("Deposit can be done only for UserBalance, tried for " + invoice.entity_type);
     }
     return(Find(FundingTransaction.Create(
                     from, invoice.entity_id, invoice.entity_type, invoice, invoice.amount, invoice.currency_type
                     )));
 }
Ejemplo n.º 24
0
 public static FundingTransaction Find(UserModel user, Invoice invoice, int entityId, EntityType entityType)
 => Connection().Query <FundingTransaction>(
     $@"SELECT * FROM funding_transactions 
             WHERE from_user_id = @from_user_id AND invoice_id = @invoice_id AND entity_id = @entity_id
             AND entity_type = '{entityType.ToString()}'
             LIMIT 1",
     new {
     from_user_id = user.id,
     invoice_id   = invoice.id,
     entity_id    = entityId
 }
     ).FirstOrDefault();
Ejemplo n.º 25
0
 public static int Create(
     UserModel creator, string title, string repoUrl, RepoServiceType serviceType, string originId = ""
     )
 {
     return(ExecuteScalarInt(
                $@"INSERT INTO public.repositories(creator_id, guid, title, repo_url, service_type, origin_id) 
                 VALUES (@creator_id, @guid, @title, @repo_url, '{serviceType.ToString()}', @origin_id);
                 SELECT currval('repositories_id_seq');"
                , new {
         creator_id = creator?.id, guid = Guid.NewGuid().ToString(), title, repo_url = repoUrl,
         origin_id = originId
     }
                ));
 }
Ejemplo n.º 26
0
        public static ServiceAccessToken FindOrUpdateAccessToken(
            UserModel user, string accessToken, ServiceType serviceType
            )
        {
            var token = Find(user, serviceType);

            if (token == null)
            {
                token = Create(user, accessToken, serviceType);
            }

            token.UpdateToken(accessToken);

            return(token);
        }
 public static ExternalRepo CreateFrom(User owner, Repository repository)
 {
     if (repository.Fork || repository.Archived)
     {
         return(null);
     }
     return(new ExternalRepo()
     {
         Owner = owner,
         Id = repository.Id.ToString(),
         Name = repository.FullName,
         Description = repository.Description,
         ServiceType = ServiceType.GitHub
     });
 }
Ejemplo n.º 28
0
 public static Invoice Create(
     UserModel user            = null, int?entityId = null, EntityType entityType = EntityType.Project,
     CurrencyType currencyType = CurrencyType.BitCoin, InvoiceStatus status = InvoiceStatus.Created
     )
 {
     return(InvoiceRepository.Create(
                user ?? UserFaker.Create(),
                entityId ?? ProjectFaker.Create().id,
                entityType,
                0.001M * Rand.SmallInt(),
                currencyType,
                status,
                CurrencyWalletFaker.Create(currencyType)
                ));
 }
Ejemplo n.º 29
0
        public static Invoice Create(
            UserModel user, int entityId, EntityType entityType, decimal amount, CurrencyType currencyType,
            InvoiceStatus status, CurrencyWallet wallet
            )
        {
            switch (entityType)
            {
            case EntityType.UserBalance:
                UserBalanceRepository.FindOrCreate(user, currencyType);
                break;
            }
            var invoice = Find(Invoice.Create(user, entityId, entityType, amount, currencyType, status, wallet));

            DiscordWebhooks.SendEvent("system-events", $"New invoice #{invoice.id} was created for user: {invoice.user_id}");
            return(invoice);
        }
        public static ExternalRepo[] CreateFromMany(User owner, IEnumerable <Repository> repositories)
        {
            var result = new List <ExternalRepo>();

            foreach (var repo in repositories)
            {
                var externalRepo = CreateFrom(owner, repo);
                if (externalRepo == null)
                {
                    continue;
                }
                result.Add(externalRepo);
            }

            return(result.ToArray());
        }