private ActionResult ModifyState(ClientSubscription clientSubscription, ClientSubscriptionState state)
        {
            if (ModelState.IsValid)
            {
                DateTime           time         = clientSubscription.Timestamp;
                ClientSubscription subscription = db.ClientSubscriptions.Find(clientSubscription.ClientSubscriptionId);
                long clientAccountId            = subscription.ClientAccountId;
                subscription.State     = state;
                subscription.Timestamp = DateTime.Now;
                subscription.Notes     = clientSubscription.Notes;

                db.Entry(subscription).State = EntityState.Modified;

                var clientSubscriptionHistory = new ClientSubscriptionHistory()
                {
                    UnitPrice            = subscription.UnitPrice,
                    State                = state,
                    Quantity             = subscription.CurrentQuantity,
                    Notes                = subscription.Notes,
                    VesselName           = subscription.VesselName,
                    ClientSubscriptionId = subscription.ClientSubscriptionId,
                    Timestamp            = time
                };

                db.ClientSubscriptionHistories.Add(clientSubscriptionHistory);

                db.SaveChanges();
                return(RedirectToAction("Index", new { accountId = clientAccountId }));
            }

            return(View("Invalid state."));
        }
示例#2
0
        //public ClientSubscription(ClientSubscription subscription, PackageExtendSubscription extension, bool debugRequest)
        //{
        //    ClientNodeGuid = subscription.ClientNodeGuid;
        //    SubscriptionId = extension.SubscriptionId;
        //    //ExpiryTime = extension.ExpiryTime; // was DateTimeOffset.Now.AddMinutes(5);
        //    DataTypeName = subscription.DataTypeName;
        //    ItemKind = subscription.ItemKind;
        //    Expression = subscription.Expression;
        //    AppScopes = subscription.AppScopes;
        //    MinimumUSN = subscription.MinimumUSN;
        //    ExcludeExisting = subscription.ExcludeExisting;
        //    ExcludeDeleted = subscription.ExcludeDeleted;
        //    AsAtTime = subscription.AsAtTime;
        //    ExcludeDataBody = subscription.ExcludeDataBody;
        //    DebugRequest = debugRequest;
        //}

        /// <summary>
        ///
        /// </summary>
        /// <param name="subscription"></param>
        public ClientSubscription(ClientSubscriptionState subscription)
        {
            ClientId       = new Guid(subscription.ConnectionId);
            SubscriptionId = new Guid(subscription.SubscriptionId);
            //if (resetExpiry)
            //    ExpiryTime = DateTimeOffset.Now.Add(ServerCfg.CommsSubscriptionExtension);
            //else
            //    ExpiryTime = DateTimeOffset.Parse(subscription.ExpiryTime);
            DataTypeName    = subscription.DataTypeName;
            ItemKind        = (ItemKind)subscription.ItemKind;
            Expression      = (subscription.Expression != null) ? Expr.Create(subscription.Expression) : Expr.ALL;
            AppScopes       = subscription.AppScopes;
            MinimumUSN      = subscription.MinimumUSN;
            ExcludeExisting = subscription.ExcludeExisting;
            ExcludeDeleted  = !subscription.IncludeDeleted;
            AsAtTime        = DateTimeOffset.Parse(subscription.AsAtTime);
            ExcludeDataBody = subscription.ExcludeDataBody;
            DebugRequest    = subscription.DebugRequest;
        }