private bool IsSharedOrOwned(ServiceData.Models.UserCondition cond) { if (cond.Owner.Email == User.Identity.Name) { return(true); } IReadWriteRepository <ServiceData.Models.Share> _shareRepository = new ShareRepository(); return(_shareRepository.Search(s => s.UserCondition.Id == cond.Id && s.SharedEmail == User.Identity.Name && s.ExpireDate > DateTime.UtcNow).Any()); }
private void HandleQueueAsync(long tradeId, IScope scope) { var trade = scope.Resolve <ITradeService>().GetSingle(r => r.Id == tradeId); if (trade != null) { try { if (trade.Status != ShareOrderStatus.Pending) { throw new MessageQueueHandleException(tradeId, "分润订单状态不是待处理状态"); } var order = scope.Resolve <IShareRepository>().GetSingleNative(trade.Id); if (order.Status != ShareOrderStatus.Pending) { throw new MessageQueueHandleException(tradeId, "分润订单状态不是待处理状态"); } var moduleTypeArray = scope.Resolve <IRuleModuleService>().AllRuleType(); foreach (var type in moduleTypeArray) { RuleActuator actuator = new RuleActuator(); actuator.ExecuteTask(type, trade); } //更新成功 scope.Resolve <ITradeService>().Update(r => { r.Status = ShareOrderStatus.Handled; r.ExecuteCount += 1; r.UpdateTime = DateTime.Now; }, r => r.Id == trade.Id); //原生数据库才插入一次 var unitOfWork = scope.Resolve <IUnitOfWork>(); ShareRepository shareOrderRepository = new ShareRepository(unitOfWork); shareOrderRepository.SuccessOrder(trade.Id); } catch (Exception ex) { scope.Resolve <IShareService>().AddMessage(ex.Message, trade); scope.Resolve <ITradeService>().Update(r => { r.Status = ShareOrderStatus.Error; r.UpdateTime = DateTime.Now; trade.Summary = ex.Message; }, r => r.Id == trade.Id); } } }
// GET: Conditions public async Task <ActionResult> Index(int id) { await LoadViewBag(); IReadWriteRepository <ServiceData.Models.UserCondition> _condRepository = new UserConditionsRepository(); ServiceData.Models.UserCondition found = _condRepository.GetById(id); if (found == null) { return(new HttpNotFoundResult()); } IReadWriteRepository <ServiceData.Models.Share> _shareRepository = new ShareRepository(); ServiceData.Models.Share sh = _shareRepository.Search(s => s.UserCondition.Id == id && s.SharedEmail == User.Identity.Name && s.ExpireDate > DateTime.UtcNow).FirstOrDefault(); if (found.Owner.Email != User.Identity.Name && sh == null) { return(new HttpUnauthorizedResult()); } // Has been shared with the user (potentially themself but meh) if (sh != null) { sh.Updated = false; _shareRepository.Update(sh); ViewData["Title"] = string.Format("{0}'s {1}", found.Owner.Name, found.Condition); } else { ViewData["Title"] = found.Condition; } Models.UserCondition cond = Models.UserCondition.ToAppModel(found, true); ViewData["Condition"] = cond; return(View(cond.Photos)); }
public void GetList_ShouldReturnCorrectShareCountTest() { // Arrange var builder = new DbContextOptionsBuilder <ExchangeContext>(); builder.UseInMemoryDatabase(databaseName: "TestPortfolio4"); var context = new ExchangeContext(builder.Options); InitDbContext(context); var repo = new ShareRepository(context); // Act var result = repo.Query(); var count = result.CountAsync(); // Assert Assert.AreEqual(2, Convert.ToInt32(count.Result)); }
// GET: Shares public async Task <ActionResult> Index() { await LoadViewBag(); IReadWriteRepository <ServiceData.Models.Share> _shareRepository = new ShareRepository(); List <ServiceData.Models.Share> found = _shareRepository.Search(sh => sh.SharedEmail == User.Identity.Name).ToList(); List <Models.Share> toRet = new List <Models.Share>(); foreach (ServiceData.Models.Share sh in found) { toRet.Add(Models.Share.ToAppModel(sh, true)); } toRet = toRet.OrderByDescending(item => item.UserCondition.Photos.OrderByDescending(p => p.CreatedAt).FirstOrDefault()?.CreatedAt).ToList(); ViewData["Title"] = "Shared With Me"; return(View(toRet)); }
public void GetList_ShouldUpdateCorrectlyShareTest() { // Arrange var builder = new DbContextOptionsBuilder <ExchangeContext>(); builder.UseInMemoryDatabase(databaseName: "TestPortfolio6"); var context = new ExchangeContext(builder.Options); InitDbContext(context); var repo = new ShareRepository(context); var rate = Convert.ToDecimal(50.00); // Act var result = repo.UpdateAsync(new HourlyShareRate { Rate = rate, Symbol = "TES", TimeStamp = DateTime.Now }); var count = result.IsCompleted; //// Assert Assert.IsNotNull(count); Assert.IsTrue(count); }
private void HandleQueueAsync(ITaskActuator taskActuator, TaskManager taskManager, long queueId, IScope scope) { var shareOrder = scope.Resolve <ITradeService>().GetSingle(r => r.Id == queueId); if (shareOrder != null) { try { if (shareOrder.Status != ShareOrderStatus.Pending) { throw new MessageQueueHandleException(queueId, "分润订单状态不是待处理状态"); } var order = scope.Resolve <IShareRepository>().GetSingleNative(shareOrder.Id); if (order.Status != ShareOrderStatus.Pending) { throw new MessageQueueHandleException(queueId, "分润订单状态不是待处理状态"); } var moduleTypeArray = taskManager.GetModulePriceArray(); foreach (var type in moduleTypeArray) { if (shareOrder.TriggerType == TriggerType.Order) { //// 确认收货的时候,产生分润 //if (shareOrder.SystemStatus != ShareOrderSystemStatus.Pending) //{ // continue; //} taskActuator.ExecuteTask(type, shareOrder, new { ShareOrderId = queueId, shareOrder.TriggerType, OrderId = shareOrder.EntityId }); } //else { // taskActuator.ExecuteTask(type, shareOrder, // new { ShareOrderId = queueId, shareOrder.TriggerType, BaseFenRunAmount = shareOrder.Amount }); //} } //更新成功 scope.Resolve <ITradeService>().Update(r => { r.Status = ShareOrderStatus.Handled; r.ExecuteCount += 1; r.UpdateTime = DateTime.Now; }, r => r.Id == shareOrder.Id); //原生数据库才插入一次 var unitOfWork = scope.Resolve <IUnitOfWork>(); ShareRepository shareOrderRepository = new ShareRepository(unitOfWork); shareOrderRepository.SuccessOrder(shareOrder.Id); } catch (Exception ex) { //处理失败 scope.Resolve <ITradeService>().Update(r => { r.Status = ShareOrderStatus.Error; r.UpdateTime = DateTime.Now; shareOrder.Summary = ex.Message; }, r => r.Id == shareOrder.Id); } } }
public ShareController(ShareRepository repo) { _db = repo; }
public void Cleanup() { _context.Dispose(); _context = null; _shareRepository = null; }
public void Initialize() { _context = ContextFactory.CreateContext(true); _shareRepository = new ShareRepository(_context); }
public void Initialize() { _exchangeContext = new Mock <ExchangeContext>(); _dbSetHourlyShareRate = new Mock <DbSet <HourlyShareRate> >(); _shareRepository = new ShareRepository(_exchangeContext.Object); }
public InactivityMonitor() : base() { _logRepository = new LogRepository(); _urlRepository = new UrlRepository(); _shareRepository = new ShareRepository(); }