Exemple #1
0
        public ActionResult Index()
        {
            AccountIndex ai   = new AccountIndex();
            var          user = db.Users.Find(User.Identity.GetUserId());

            ai.AllProjects = db.Projects.ToList();
            ai.User        = user;
            ai.Role        = roleHelper.ListUserRoles(User.Identity.GetUserId()).FirstOrDefault();
            if (ai.Role == "Admin")
            {
                ai.Projects = projectHelper.ListUserProjects(User.Identity.GetUserId());
                ai.Tickets  = db.Tickets.ToList();
            }
            else if (ai.Role == "ProjectManager")
            {
                ai.Projects = projectHelper.ListUserProjects(User.Identity.GetUserId());
                ai.Tickets  = projectHelper.ListUserProjects(User.Identity.GetUserId()).SelectMany(p => p.Tickets).ToList();
            }
            else if (ai.Role == "Developer")
            {
                ai.Projects = projectHelper.ListUserProjects(User.Identity.GetUserId());
                ai.Tickets  = db.Tickets.Where(t => t.DeveloperId == user.Id).ToList();
            }
            else if (ai.Role == "Submitter")
            {
                ai.Projects = projectHelper.ListUserProjects(User.Identity.GetUserId());
                ai.Tickets  = db.Tickets.Where(t => t.SubmitterId == user.Id).ToList();
            }

            return(View(ai));
        }
Exemple #2
0
 public void Add(AccountIndex index)
 {
     using (var connection = GetConnection())
     {
         connection.Open();
         connection.Insert(new
         {
             AccountId   = index.AccountId,
             AccountName = index.AccountName
         }, Constants.AccountIndexTable);
     }
 }
 // PUT api/account/5/patch
 public void Put(int id, string patch, AccountIndex account)
 {
     //switch (patch)
     //{
     //    case "security":
     //        _manager.UpdateSecurityStatistics(account);
     //        break;
     //    default:
     //        _manager.Save(account);
     //        break;
     //}
 }
Exemple #4
0
        public async Task Add(AccountIndex index)
        {
            using (var connection = GetConnection())
            {
                await connection.OpenAsync();

                await connection.InsertAsync(new
                {
                    AccountId   = index.AccountId,
                    AccountName = index.AccountName
                }, Constants.AccountIndexTable);
            }
        }
Exemple #5
0
        public async Task DownloadLastStatus()
        {
            if (_statusBusy)
            {
                return;
            }
            _statusBusy = true;

            var modified = false;

            for (var i = 0; ; i++)
            {
                var batch = _subscriptions.GetBatch(i);
                if (batch == null)
                {
                    break;
                }

                //if (Time.PassedSeconds(batch.LastChecked) < 60)
                //    continue;

                var accounts          = batch.GetSubscriptions();
                var transactionResult = await AccountIndex.DownloadLastTransactionInfoBatch(_client, ChainType.Data, ChainId, StatusServiceInfo.StatusDataChainIndex, accounts, StatusServiceInfo.MessageIndex);

                if (transactionResult != null)
                {
                    if (transactionResult.ResultType == ResultTypes.Ok)
                    {
                        modified |= _subscriptions.ProcessLastTransactionInfo(batch, transactionResult.Item);
                        modified |= await QueryMissingProfiles();
                    }
                }
                else
                {
                    //UIApp.Toast("");
                }
            }

            if (modified)
            {
                await SaveAsync();
            }

            _statusBusy = false;
        }
Exemple #6
0
        public async Task <InboxRecordDownloadEvent> DownloadInboxRecords(long accountId)
        {
            var items  = new List <InboxNameRecordInfo>();
            var result = MessageNodeEventResultTypes.Unknown;

            if (!ServiceNode.HasUnlockedServiceAccount)
            {
                result = MessageNodeEventResultTypes.NoUnlockedAccount;
                goto end;
            }

            var next = (await _client.DownloadNextServiceAccountKeyIndex(accountId, ChainId)).Data;

            if (next == null || !next.IsValid)
            {
                result = MessageNodeEventResultTypes.DownloadFailed;
                goto end;
            }

            var keyCount = next.Item - 1;
            var indices  = new List <Chain.Index>();

            for (short i = 0; i <= keyCount; i++)
            {
                indices.Add(MessageServiceInfo.GetInboxIndex(i));
            }

            var data = await AccountIndex.DownloadLastTransactionInfoIndicesBatch(_client, ChainType.Data, ChainId, MessageServiceInfo.MessageDataChainIndex, accountId, indices);

            if (data == null)
            {
                result = MessageNodeEventResultTypes.DownloadFailed;
                goto end;
            }

            if (data.ResultType != ResultTypes.Ok)
            {
                result = MessageNodeEventResultTypes.InvalidAccount;
                goto end;
            }

            var batch = data.Item;
            var count = batch.Count;

            for (short i = 0; i < count; i++)
            {
                InboxNameRecord record = null;
                (var success, _, var last) = batch.GetInfo(i);
                if (success)
                {
                    try
                    {
                        var transactionData = await ServiceNode.GetTransactionDownloadManager(MessageServiceInfo.MessageDataChainIndex).DownloadTransaction(last.TransactionId);

                        if (transactionData.Ok && transactionData.Count == 1 && transactionData.Transactions[0].Transaction.TryGetFeature <Data>(Data.FeatureId, out var featureData))
                        {
                            var recordData = featureData.Items[0].BinaryValue;
                            record = new InboxNameRecord(new Unpacker(recordData));
                        }
                    }
                    catch { }
                }

                items.Add(new InboxNameRecordInfo(i, record));
            }

            if (items.Count > 0)
            {
                result = MessageNodeEventResultTypes.Ok;
                if (accountId == AccountId)
                {
                    InboxNameRecords = items;
                }
            }
            else
            {
                result = MessageNodeEventResultTypes.InvalidAccount;
            }

end:

            var @event = new InboxRecordDownloadEvent(accountId, items, this, result);
            await UIApp.PubSub.PublishAsync(@event);

            return(@event);
        }
 // POST api/account
 public void Post(AccountIndex account)
 {
     //_manager.CreateNew(account);
 }
Exemple #8
0
 public override long GetPreviousTransactionId(Transaction transaction)
 {
     AccountIndex.GetPreviousTransactionId(transaction, out var previousTransactionId);
     return(previousTransactionId);
 }
Exemple #9
0
 public override async Task <Result> GetLastTransactionId()
 {
     return(await AccountIndex.DownloadLastTransactionInfo(_client, ChainType, ChainId, ChainIndex, AccountId, _index));
 }