public ActionResult DeleteConfirmed(int id) { SUBSCRIPTION sUBSCRIPTION = db.SUBSCRIPTION.Find(id); db.SUBSCRIPTION.Remove(sUBSCRIPTION); db.SaveChanges(); return(RedirectToAction("Index")); }
/// <summary> /// отключить подписчика /// заодно отрубить ему торговые сигналы /// </summary> public bool UnsubscribeSubscriber(TradeSharpConnection ctx, SUBSCRIPTION sub) { // отписать подписчика и сформировать для него уведомление try { var service = ctx.SERVICE.First(s => s.ID == sub.Service); Logger.InfoFormat("UnsubscribeSubscriber(srv={0}, user={1}, srvAccount={2})", sub.Service, sub.User, service.AccountId); // отписать от торг. сигналов? if (service.ServiceType == (int)PaidServiceType.Signals) { var signalService = (from srv in ctx.SERVICE where srv.ID == sub.Service select srv).FirstOrDefault(); if (signalService != null) { var signalId = signalService.ID; var query = (from us in ctx.SUBSCRIPTION where us.Service == signalId && us.User == sub.User select us); var userSignalToRemove = new List <SUBSCRIPTION>(); foreach (var userSubscribed in query) { userSignalToRemove.Add(userSubscribed); } Logger.InfoFormat("UnsubscribeSubscriber(): remove {0} signals", userSignalToRemove.Count); foreach (var userSubscribed in userSignalToRemove) { ctx.SUBSCRIPTION.Remove(userSubscribed); } } else { Logger.ErrorFormat("UnsubscribeSubscriber(#{0}) - владелец сигнала #{1} не найден", sub.User, sub.Service); } } // убрать саму подписку ctx.SUBSCRIPTION.Remove(sub); // !! с уведомлением пока что вопрос return(true); } catch (Exception ex) { Logger.Error("Error in UnsubscribeSubscriber()", ex); return(false); } }
public void InsertOrUpdate(SUBSCRIPTION spec) { if (spec.SUBSCRIPTIONID == default(int)) // New entity { _context.Entry(spec).State = EntityState.Added; } else // Existing entity { _context.Entry(spec).State = EntityState.Modified; } }
public ActionResult Edit([Bind(Include = "idUser,fullname,identificationCard,age,email,profesion,idProvince,canton,district")] SUBSCRIPTION sUBSCRIPTION) { if (ModelState.IsValid) { db.Entry(sUBSCRIPTION).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.idProvince = new SelectList(db.PROVINCE, "idProvince", "province1", sUBSCRIPTION.idProvince); return(View(sUBSCRIPTION)); }
public void InsertOrUpdateGraph(SUBSCRIPTION specGraph) { if (specGraph.State == DOCVIDEO.ObjectState.State.Added) { _context.SUBSCRIPTIONS.Add(specGraph); } else { _context.SUBSCRIPTIONS.Add(specGraph); _context.ApplyStateChanges(); } }
public bool findSubBool(string email) { SUBSCRIPTION sub = db.Database.SqlQuery <SUBSCRIPTION>("SELECT * FROM SUBSCRIPTION WHERE email = '" + email + "';").FirstOrDefault(); if (sub == null) { return(false); } else { return(true); } }
public SUBSCRIPTION findSub(string email) { SUBSCRIPTION sub = db.Database.SqlQuery <SUBSCRIPTION>("SELECT * FROM SUBSCRIPTION WHERE email = '" + email + "'").FirstOrDefault(); if (sub == null) { return(null); } else { return(sub); } }
// GET: Suscripcion/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } SUBSCRIPTION sUBSCRIPTION = db.SUBSCRIPTION.Find(id); if (sUBSCRIPTION == null) { return(HttpNotFound()); } return(View(sUBSCRIPTION)); }
// GET: Suscripcion/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } SUBSCRIPTION sUBSCRIPTION = db.SUBSCRIPTION.Find(id); if (sUBSCRIPTION == null) { return(HttpNotFound()); } ViewBag.idProvince = new SelectList(db.PROVINCE, "idProvince", "province1", sUBSCRIPTION.idProvince); return(View(sUBSCRIPTION)); }
public ActionResult Create([Bind(Include = "idUser,fullname,identificationCard,age,email,profesion,idProvince,canton,district")] SUBSCRIPTION sUBSCRIPTION) { if (findSub(sUBSCRIPTION.email) != null) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden)); } if (ModelState.IsValid) { db.SUBSCRIPTION.Add(sUBSCRIPTION); db.SaveChanges(); emailController.sendEmail("Confirmar cuenta banco central", "Cuenta de " + sUBSCRIPTION.fullname + " creada con éxito", sUBSCRIPTION.email); @ViewBag.sub_create = "Suscripción realizada correctamente"; } ViewBag.idProvince = new SelectList(db.PROVINCE, "idProvince", "province1", sUBSCRIPTION.idProvince); return(View(sUBSCRIPTION)); }
/// <summary> /// отключить подписчика /// заодно отрубить ему торговые сигналы /// </summary> public bool UnsubscribeSubscriber(TradeSharpConnection ctx, SUBSCRIPTION sub) { // отписать подписчика и сформировать для него уведомление try { var service = ctx.SERVICE.First(s => s.ID == sub.Service); Logger.InfoFormat("UnsubscribeSubscriber(srv={0}, user={1}, srvAccount={2})", sub.Service, sub.User, service.AccountId); // отписать от торг. сигналов? if (service.ServiceType == (int)PaidServiceType.Signals) { var signalService = (from srv in ctx.SERVICE where srv.ID == sub.Service select srv).FirstOrDefault(); if (signalService != null) { var signalId = signalService.ID; var query = (from us in ctx.SUBSCRIPTION where us.Service == signalId && us.User == sub.User select us); var userSignalToRemove = new List<SUBSCRIPTION>(); foreach (var userSubscribed in query) userSignalToRemove.Add(userSubscribed); Logger.InfoFormat("UnsubscribeSubscriber(): remove {0} signals", userSignalToRemove.Count); foreach (var userSubscribed in userSignalToRemove) ctx.SUBSCRIPTION.Remove(userSubscribed); } else { Logger.ErrorFormat("UnsubscribeSubscriber(#{0}) - владелец сигнала #{1} не найден", sub.User, sub.Service); } } // убрать саму подписку ctx.SUBSCRIPTION.Remove(sub); // !! с уведомлением пока что вопрос return true; } catch (Exception ex) { Logger.Error("Error in UnsubscribeSubscriber()", ex); return false; } }
public bool SubscribeOnService(TradeSharpConnection ctx, int userId, int serviceId, bool renewAuto, bool unsubscribe, AutoTradeSettings tradeSets, out WalletError error) { // имеющаяся подписка var subs = ctx.SUBSCRIPTION.FirstOrDefault(s => s.Service == serviceId && s.User == userId); // просто отписаться от сервиса if (unsubscribe) { error = WalletError.OK; if (subs == null) return true; ctx.SUBSCRIPTION.Remove(subs); try { ctx.SaveChanges(); } catch (Exception ex) { Logger.Error("Ошибка удаления подписки (SubscribeOnService)", ex); error = WalletError.ServerError; return false; } return true; } var paidService = ctx.SERVICE.FirstOrDefault(s => s.ID == serviceId); if (paidService == null) { error = WalletError.InvalidData; return false; } // проверить - не подписывается ли пользователь сам на себя? if (paidService.User == userId) { error = WalletError.InvalidData; return false; } // провести списание денежных средств // содрать денежку var feeError = ChargeFeeOnSubscription(ctx, serviceId, userId, false); if (feeError != WalletError.OK) { error = feeError; return false; } // продлить или обновить подписку var subExists = subs != null; if (subs == null) subs = new SUBSCRIPTION(); subs.RenewAuto = renewAuto; subs.TimeEnd = DateTime.Now.Date.AddDays(1); subs.TimeStarted = DateTime.Now.Date; subs.User = userId; subs.Service = serviceId; if (!subExists) ctx.SUBSCRIPTION.Add(subs); // обновить или создать настройки торговли var signalTradeSets = ctx.SUBSCRIPTION_SIGNAL.FirstOrDefault(s => s.Service == serviceId && s.User == userId); var setsExists = signalTradeSets != null; if (signalTradeSets == null) signalTradeSets = new SUBSCRIPTION_SIGNAL(); signalTradeSets.AutoTrade = tradeSets.TradeAuto; signalTradeSets.FixedVolume = tradeSets.FixedVolume; signalTradeSets.HedgingOrdersEnabled = tradeSets.HedgingOrdersEnabled; signalTradeSets.MaxLeverage = tradeSets.MaxLeverage; signalTradeSets.MaxVolume = tradeSets.MaxVolume; signalTradeSets.MinVolume = tradeSets.MinVolume; signalTradeSets.PercentLeverage = tradeSets.PercentLeverage; signalTradeSets.Service = serviceId; signalTradeSets.StepVolume = tradeSets.StepVolume; signalTradeSets.User = userId; signalTradeSets.TargetAccount = tradeSets.TargetAccount; signalTradeSets.VolumeRound = (int?)tradeSets.VolumeRound; if (!setsExists) ctx.SUBSCRIPTION_SIGNAL.Add(signalTradeSets); try { ctx.SaveChanges(); } catch (Exception ex) { Logger.Error("Ошибка сохранения подписки (SubscribeOnService)", ex); error = WalletError.ServerError; return false; } error = WalletError.OK; return true; }
public bool SubscribeOnService(TradeSharpConnection ctx, int userId, int serviceId, bool renewAuto, bool unsubscribe, AutoTradeSettings tradeSets, out WalletError error) { // имеющаяся подписка var subs = ctx.SUBSCRIPTION.FirstOrDefault(s => s.Service == serviceId && s.User == userId); // просто отписаться от сервиса if (unsubscribe) { error = WalletError.OK; if (subs == null) { return(true); } ctx.SUBSCRIPTION.Remove(subs); try { ctx.SaveChanges(); } catch (Exception ex) { Logger.Error("Ошибка удаления подписки (SubscribeOnService)", ex); error = WalletError.ServerError; return(false); } return(true); } var paidService = ctx.SERVICE.FirstOrDefault(s => s.ID == serviceId); if (paidService == null) { error = WalletError.InvalidData; return(false); } // проверить - не подписывается ли пользователь сам на себя? if (paidService.User == userId) { error = WalletError.InvalidData; return(false); } // провести списание денежных средств // содрать денежку var feeError = ChargeFeeOnSubscription(ctx, serviceId, userId, false); if (feeError != WalletError.OK) { error = feeError; return(false); } // продлить или обновить подписку var subExists = subs != null; if (subs == null) { subs = new SUBSCRIPTION(); } subs.RenewAuto = renewAuto; subs.TimeEnd = DateTime.Now.Date.AddDays(1); subs.TimeStarted = DateTime.Now.Date; subs.User = userId; subs.Service = serviceId; if (!subExists) { ctx.SUBSCRIPTION.Add(subs); } // обновить или создать настройки торговли var signalTradeSets = ctx.SUBSCRIPTION_SIGNAL.FirstOrDefault(s => s.Service == serviceId && s.User == userId); var setsExists = signalTradeSets != null; if (signalTradeSets == null) { signalTradeSets = new SUBSCRIPTION_SIGNAL(); } signalTradeSets.AutoTrade = tradeSets.TradeAuto; signalTradeSets.FixedVolume = tradeSets.FixedVolume; signalTradeSets.HedgingOrdersEnabled = tradeSets.HedgingOrdersEnabled; signalTradeSets.MaxLeverage = tradeSets.MaxLeverage; signalTradeSets.MaxVolume = tradeSets.MaxVolume; signalTradeSets.MinVolume = tradeSets.MinVolume; signalTradeSets.PercentLeverage = tradeSets.PercentLeverage; signalTradeSets.Service = serviceId; signalTradeSets.StepVolume = tradeSets.StepVolume; signalTradeSets.User = userId; signalTradeSets.TargetAccount = tradeSets.TargetAccount; signalTradeSets.VolumeRound = (int?)tradeSets.VolumeRound; if (!setsExists) { ctx.SUBSCRIPTION_SIGNAL.Add(signalTradeSets); } try { ctx.SaveChanges(); } catch (Exception ex) { Logger.Error("Ошибка сохранения подписки (SubscribeOnService)", ex); error = WalletError.ServerError; return(false); } error = WalletError.OK; return(true); }
public static Subscription DecorateSubscription(SUBSCRIPTION sub) { return new Subscription { User = sub.User, RenewAuto = sub.RenewAuto, Service = sub.Service, TimeEnd = sub.TimeEnd, TimeStarted = sub.TimeStarted }; }