static void Main(string[] args) { var watch = new System.Diagnostics.Stopwatch(); MatrixEntityBuilder builder = new MatrixEntityBuilder(); MatrixEntity m1 = builder.build(10000, 10000); MatrixEntity m2 = builder.build(10000, 1); MatrixEntity m3 = builder.build(1, 10000); for (int i = 0; i < 10; i++) { watch.Start(); MatrixEntity res = m2.multy(m1); watch.Stop(); Console.WriteLine($"Execution Time: {watch.ElapsedMilliseconds} ms"); watch.Reset(); } Console.WriteLine("---------------------------------"); for (int i = 0; i < 10; i++) { watch.Start(); MatrixEntity res = m1.multy(m3); watch.Stop(); Console.WriteLine($"Execution Time: {watch.ElapsedMilliseconds} ms"); watch.Reset(); } }
public async Task InsertAsync(Matrix matrix) { var entity = new MatrixEntity(matrix); await _storage.InsertAsync(entity); var blob = Mapper.Map <MatrixBlob>(matrix); await _blobRepository.SaveAsync(blob); }
public async Task DeleteIfExistsAsync(string assetPair, DateTime dateTime) { var blobId = MatrixEntity.GenerateBlobId(assetPair, dateTime); if (await BlobExistsAsync(blobId)) { await DeleteBlobAsync(blobId); } }
public async Task <MatrixBlob> GetAsync(string assetPair, DateTime dateTime) { var blobId = MatrixEntity.GenerateBlobId(assetPair, dateTime); if (!await BlobExistsAsync(blobId)) { return(null); } return((await GetBlobStringAsync(blobId)).DeserializeJson <MatrixBlob>()); }
public async Task <bool> DeleteAsync(string assetPair, DateTime dateTime) { var pkey = MatrixEntity.GeneratePartitionKey(assetPair, dateTime); var rowkey = MatrixEntity.GenerateRowKey(dateTime); var result = await _storage.DeleteIfExistAsync(pkey, rowkey); await _blobRepository.DeleteIfExistsAsync(assetPair, dateTime); return(result); }
private async Task <IEnumerable <MatrixEntity> > GetAsync(DateTime from, DateTime to) { var rowKeyFrom = MatrixEntity.GenerateRowKey(from); var rowKeyTo = MatrixEntity.GenerateRowKey(to); var query = new TableQuery <MatrixEntity>(); var rowkeyCondFrom = TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.GreaterThanOrEqual, rowKeyFrom); var rowkeyCondTo = TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.LessThanOrEqual, rowKeyTo); var rowkeyFilter = TableQuery.CombineFilters(rowkeyCondFrom, TableOperators.And, rowkeyCondTo); query.FilterString = rowkeyFilter; return(await _storage.WhereAsync(query)); }
/// <summary> /// Saves matrix instance to database with passed id. /// If database consists of passed id, method will update record with that id. /// </summary> /// <param name="id">Id of record.</param> public virtual void SaveToDb(string id) { var oldEntity = _db.Matrixes.FirstOrDefault(t => t.Id == id); if (oldEntity is not null) { oldEntity.Id = id; oldEntity.Stringify(Matrix); } else { var newEntity = new MatrixEntity(id, Matrix); _db.Matrixes.Add(newEntity); } _db.SaveChanges(); }
private async Task <IEnumerable <MatrixEntity> > GetAsync(string assetPair, DateTime from, DateTime to) { Debug.Assert(!string.IsNullOrWhiteSpace(assetPair)); var pKeyFrom = MatrixEntity.GeneratePartitionKey(assetPair, from); var pKeyTo = MatrixEntity.GeneratePartitionKey(assetPair, to); var rowKeyFrom = MatrixEntity.GenerateRowKey(from); var rowKeyTo = MatrixEntity.GenerateRowKey(to); var query = new TableQuery <MatrixEntity>(); var pkeyCondFrom = TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.GreaterThanOrEqual, pKeyFrom); var pkeyCondTo = TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.LessThanOrEqual, pKeyTo); var pkeyFilter = TableQuery.CombineFilters(pkeyCondFrom, TableOperators.And, pkeyCondTo); var rowkeyCondFrom = TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.GreaterThanOrEqual, rowKeyFrom); var rowkeyCondTo = TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.LessThanOrEqual, rowKeyTo); var rowkeyFilter = TableQuery.CombineFilters(rowkeyCondFrom, TableOperators.And, rowkeyCondTo); query.FilterString = TableQuery.CombineFilters(pkeyFilter, TableOperators.And, rowkeyFilter); return(await _storage.WhereAsync(query)); }
public ActionResult SaveSetForm(MatrixEntity entity) { var user = OperatorProvider.Provider.Current(); string isrole = "1"; if (user.RoleName.Contains("厂级")) { isrole = "0"; } if (!string.IsNullOrEmpty(entity.arrcontent)) { var arrcontentlist = Newtonsoft.Json.JsonConvert.DeserializeObject <List <MatrixcontentEntity> >(entity.arrcontent); foreach (MatrixcontentEntity arrcontentinfo in arrcontentlist) { MatrixcontentEntity en = matrixcontentbll.GetEntity(arrcontentinfo.ID); if (en != null) //执行update { en.CONTENT = arrcontentinfo.CONTENT; en.CODE = arrcontentinfo.CODE; en.ISROLE = isrole; matrixcontentbll.SaveForm(en.ID, en); } else // 新增 { arrcontentinfo.ISROLE = isrole; matrixcontentbll.SaveForm("", arrcontentinfo); } } } if (!string.IsNullOrEmpty(entity.arrdept)) { var arrdeptlist = Newtonsoft.Json.JsonConvert.DeserializeObject <List <MatrixdeptEntity> >(entity.arrdept); foreach (MatrixdeptEntity arrcondeptinfo in arrdeptlist) { MatrixdeptEntity en = matrixdeptbll.GetEntity(arrcondeptinfo.ID); if (en != null) //执行update { en.DEPTNAME = arrcondeptinfo.DEPTNAME; en.DEPT = arrcondeptinfo.DEPT; en.DEPTCODE = arrcondeptinfo.DEPTCODE; en.CODE = arrcondeptinfo.CODE; en.ISROLE = isrole; matrixdeptbll.SaveForm(en.ID, en); } else // 新增 { arrcondeptinfo.ISROLE = isrole; matrixdeptbll.SaveForm("", arrcondeptinfo); } } } if (!string.IsNullOrEmpty(entity.delcontent)) { var arr = entity.delcontent.Split(','); foreach (string ain in arr) { matrixcontentbll.RemoveForm(ain); } } if (!string.IsNullOrEmpty(entity.deldept)) { var arr = entity.deldept.Split(','); foreach (string ain in arr) { matrixdeptbll.RemoveForm(ain); } } return(Success("操作成功。")); }
public Task SaveAsync(MatrixBlob matrix) { var domain = Mapper.Map <Matrix>(matrix); return(SaveBlobAsync(MatrixEntity.GenerateBlobId(domain), matrix.ToJson())); }