Exemplo n.º 1
0
        private void MergeTransfers(TransferList data)
        {
            foreach (var transfer in data.Transfers)
            {
                var source = transfer.ToModel(Invoker);
                var target = Collection.FirstOrDefault(x => x.Transfer.TransferID == source.TransferID);

                if (target == null)
                {
                    Invoker.HandleCall(() => Collection.Add(new TransferViewModel {
                        Invoker = Invoker, Transfer = source
                    }));
                    continue;
                }

                GeneralExtensions.Copy(source, target.Transfer);
            }

            var toDelete = Collection.Where(x => !data.Transfers.Any(y => y.id == x.Transfer.TransferID)).ToList();

            foreach (var model in toDelete)
            {
                var model1 = model;
                Invoker.HandleCall(() => Collection.Remove(model1));
            }
        }
Exemplo n.º 2
0
        private void TransferList_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button != MouseButtons.Right)
            {
                return;
            }

            TreeListNode node = TransferList.GetNodeAt(e.Location) as TreeListNode;

            if (node == null || node.GetType() != typeof(TransferNode))
            {
                return;
            }

            ContextMenuStripEx menu = new ContextMenuStripEx();

            TransferNode transfer = node as TransferNode;

            menu.Items.Add(new ToolStripMenuItem("Copy Hash to Clipboaard", null, (s, o) =>
            {
                Clipboard.SetText(Utilities.ToBase64String(transfer.Transfer.Details.Hash));
            }));

            menu.Show(TransferList, e.Location);
        }
Exemplo n.º 3
0
 private void accordionControlElement64_Click(object sender, EventArgs e)
 {
     tl = new TransferList();
     tl.Show();
     tl.Dock = DockStyle.Fill;
     panel2.Controls.Clear();
     panel2.Controls.Add(tl);
 }
Exemplo n.º 4
0
        public static List <TransferViewModel> ToModelList(this TransferList @this, IPropertyChangedInvoke invoker)
        {
            if (@this == null || @this.Transfers == null)
            {
                return(new List <TransferViewModel>());
            }

            return(@this.Transfers.Select(x => new TransferViewModel {
                Invoker = invoker, Transfer = x.ToModel(invoker)
            }).ToList());
        }
        internal static TransferList CryptoTransferList(IEnumerable <KeyValuePair <Address, long> > cryptoTransfers)
        {
            long sum = 0;

            if (cryptoTransfers is null)
            {
                throw new ArgumentNullException(nameof(cryptoTransfers), "The dictionary of crypto transfers can not be null.");
            }
            var netRequests = new Dictionary <Address, long>();

            foreach (var transfer in cryptoTransfers)
            {
                if (transfer.Value == 0)
                {
                    throw new ArgumentOutOfRangeException(nameof(cryptoTransfers), $"The amount to transfer crypto to/from {transfer.Key.ShardNum}.{transfer.Key.RealmNum}.{transfer.Key.AccountNum} must be a value, negative for transfers out, and positive for transfers in. A value of zero is not allowed.");
                }
                if (netRequests.TryGetValue(transfer.Key, out long value))
                {
                    netRequests[transfer.Key] = value + transfer.Value;
                }
                else
                {
                    netRequests[transfer.Key] = transfer.Value;
                }
                sum += transfer.Value;
            }
            if (netRequests.Count == 0)
            {
                throw new ArgumentOutOfRangeException(nameof(cryptoTransfers), "The dictionary of crypto transfers can not be empty.");
            }
            if (sum != 0)
            {
                throw new ArgumentOutOfRangeException(nameof(cryptoTransfers), "The sum of crypto sends and receives does not balance.");
            }
            var xferList = new TransferList();

            foreach (var transfer in netRequests)
            {
                if (transfer.Value != 0)
                {
                    xferList.AccountAmounts.Add(new AccountAmount
                    {
                        AccountID = new AccountID(transfer.Key),
                        Amount    = transfer.Value
                    });
                }
            }
            return(xferList);
        }
Exemplo n.º 6
0
 public override string ToString()
 {
     if (HasErrors)
     {
         return(string.Format("Invalid Set of Transfers: {0}", ErrorMessage));
     }
     else if (!IsComplete)
     {
         return("Incomplete Set of Transfers");
     }
     else if (TotalCount == 0)
     {
         return("[]");
     }
     else
     {
         return(string.Format("[{0}]", string.Join(";", TransferList.Select(x => x.ToString()))));
     }
 }
Exemplo n.º 7
0
    internal CryptoTransferTransactionBody(AddressOrAlias fromAddress, AddressOrAlias toAddress, long amount) : this()
    {
        if (fromAddress is null)
        {
            throw new ArgumentNullException(nameof(fromAddress), "Account to transfer from is missing. Please check that it is not null.");
        }
        if (toAddress is null)
        {
            throw new ArgumentNullException(nameof(toAddress), "Account to transfer to is missing. Please check that it is not null.");
        }
        if (amount < 1)
        {
            throw new ArgumentOutOfRangeException(nameof(amount), "The amount to transfer must be non-negative.");
        }
        var xferList = new TransferList();

        xferList.AccountAmounts.Add(new AccountAmount(fromAddress, -amount));
        xferList.AccountAmounts.Add(new AccountAmount(toAddress, amount));
        Transfers = xferList;
    }
Exemplo n.º 8
0
        public ActionResult Add(int?scaleID, bool incomming = false)
        {
            if (scaleID == null)
            {
                return(HttpNotFound());
            }

            var scale = EquipmentProvider.GetUserAuthorizedEquipment <WagonScale>(_cdb, User.Identity).Where(s => s.ID == scaleID).SingleOrDefault();
            var model = new TransferList();

            model.Transfer = new WagonTransfer()
            {
                TransferTimeStamp = DateTime.Now,
                LotName           = _cdb.WagonScales.Find(scaleID).Location.ID + "_" + DateTime.Now.ToString("yyMMddHHmmss"),
                ID      = "W" + scaleID + (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds,
                EquipID = scaleID
            };
            GetDestinationsItemsAndScalesToVeiwBag();
            if (!incomming)
            {
                ViewBag.FromDestinations = new SelectList(_cdb.Locations
                                                          .Where(l => l.ID == scale.LocationID)
                                                          .ToList()
                                                          , "ID", "LocationName");
            }
            else
            {
                ViewBag.FromDestinations = new SelectList(_cdb.Locations.ToList(), "ID", "LocationName");
                model.Transfer.ToDest    = _cdb.Locations
                                           .Where(l => l.ID == scale.LocationID)
                                           .Select(m => m.LocationName)
                                           .FirstOrDefault();
            }

            model.Incomming = incomming;
            @ViewBag.Title  = "Ввод данных вагонных весов";
            return(View("Add", model));
        }
Exemplo n.º 9
0
        public GetAssignTransferDataRes GetAssignTransferHeader(GetAssignTransferDataReq GATDReq)
        {
            GetAssignTransferDataRes GATDRes = new GetAssignTransferDataRes();

            try
            {
                if (GATDReq.UserId == 0)
                {
                    GATDRes.Status  = "Failure";
                    GATDRes.Message = "Invalid UserId";
                    return(GATDRes);
                }

                query                    = "Sp_AssignTransfer";
                dbcommand                = new SqlCommand(query, conn);
                dbcommand.CommandType    = CommandType.StoredProcedure;
                dbcommand.CommandTimeout = 0;
                dbcommand.Parameters.AddWithValue("@QueryType", "GetAssignTransferData");
                dbcommand.Parameters.AddWithValue("@UserId", GATDReq.UserId);
                SqlDataAdapter daGetData = new SqlDataAdapter(dbcommand);
                DataSet        dsGetData = new DataSet();
                daGetData.Fill(dsGetData);

                if (Convert.ToString(dsGetData.Tables[0].Rows[0]["value"]) == "0")
                {
                    List <TransferList> TransferList = new List <TransferList>();
                    foreach (DataRow row in dsGetData.Tables[0].Rows)
                    {
                        TransferList A = new TransferList();
                        A.ActivityId      = row["ActivityId"].ToString();
                        A.IsTj            = Convert.ToInt16(row["IsTj"]);
                        A.NoOfStillages   = row["NoOfStillage"].ToString();
                        A.SiteId          = row["SiteId"].ToString();
                        A.WareHouseId     = row["WareHouseId"].ToString();
                        A.FromWareHouseId = row["FromWareHouseId"].ToString();
                        A.TATHID          = row["TATHID"].ToString();
                        TransferList.Add(A);
                    }
                    GATDRes.TransferList = TransferList;



                    GATDRes.Status  = "Success";
                    GATDRes.Message = "Data Send successfully";
                }
                else
                {
                    GATDRes.Status  = "Failure";
                    GATDRes.Message = "No assignments found";
                }
            }
            catch (Exception Ex)
            {
                GATDRes.Status  = "Failure";
                GATDRes.Message = Ex.Message;
            }
            finally
            {
                dbcommand.Connection.Close();
            }
            return(GATDRes);
        }
Exemplo n.º 10
0
        public ActionResult _AllTransfers(TransferList model)
        {
            model.Transfer.LasEditDateTime = DateTime.Now;
            model.Transfer.IsValid         = false;
            model.Transfer.Status          = 1;
            model.Transfer.OperatorName    = User.Identity.Name;
            var oldid = model.Transfer.ID;

            model.Transfer.ID = "W" + model.Transfer.EquipID + (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;

            if (Request.Form["One"] != null)
            {
                var errorMessages = new List <string>();
                var modelbadstate = false;
                if (oldid == model.Transfer.ID)
                {
                    errorMessages.Add("Слишком быстро - попробуйте еще раз");
                    modelbadstate = true;
                }
                if (string.IsNullOrEmpty(model.Transfer.SublotName))
                {
                    errorMessages.Add("Необходимо указать номер вагона - поле не может быть пустым");
                    modelbadstate = true;
                }

                if (string.IsNullOrEmpty(model.Transfer.LotName))
                {
                    errorMessages.Add("Необходимо указать номер партии - поле не может быть пустым");
                    modelbadstate = true;
                }

                if (model.Transfer.Brutto <= 0 || model.Transfer.Brutto > 150)
                {
                    errorMessages.Add("Нет или неправильно указан вес вагона - должен быть больше 0 и меньше 150");
                    modelbadstate = true;
                }

                if (model.Transfer.Tare <= 0 || model.Transfer.Tare > model.Transfer.Brutto)
                {
                    errorMessages.Add("Нет или неправильно указан вес тары - должен быть больше нуля и меньше брутто");
                    modelbadstate = true;
                }

                if (modelbadstate)
                {
                    Response.StatusCode = (int)HttpStatusCode.BadRequest;
                    return(Json(new { modelbadstate = modelbadstate, ErrorMessage = string.Join(", ", errorMessages) }));
                }
                model.Transfers.Add(model.Transfer);

                return(PartialView(model));
            }
            if (Request.Form["SaveAll"] != null)
            {
                foreach (var mod in model.Transfers)
                {
                    var vc       = new ValidationContext(mod, null, null);
                    var vResults = new List <ValidationResult>();
                    var isValid  = Validator.TryValidateObject(mod, vc, vResults, true);

                    _cdb.WagonTransfers.Add(mod);
                }
                string message;

                _cdb.SaveChanges();
                message = "Данные партии зафиксированы";

                return(JavaScript("RedirectToIndex('" + message + "');"));
            }
            return(View());
        }
Exemplo n.º 11
0
        private void RefreshView()
        {
            Dictionary <ulong, OpTransfer> displayMap = new Dictionary <ulong, OpTransfer>();

            if (ShowDownloads.Checked)
            {
                foreach (OpTransfer download in Service.Transfers.Values.Where(t => t.Status != TransferStatus.Complete))
                {
                    displayMap[download.FileID] = download;
                }
            }

            if (ShowUploads.Checked)
            {
                foreach (OpTransfer upload in Service.Transfers.Values.Where(t => t.Status == TransferStatus.Complete))
                {
                    displayMap[upload.FileID] = upload;
                }
            }

            if (ShowPending.Checked)
            {
                foreach (OpTransfer pending in Service.Pending)
                {
                    displayMap[pending.FileID] = pending;
                }
            }


            if (ShowPartials.Checked)
            {
                foreach (OpTransfer partial in Service.Partials)
                {
                    displayMap[partial.FileID] = partial;
                }
            }

            // remove
            var remove = (from TransferNode node in TransferList.Nodes
                          where !displayMap.ContainsKey(node.Transfer.FileID)
                          select node).ToList();

            foreach (TransferNode node in remove)
            {
                TransferMap.Remove(node.Transfer.FileID);
                TransferList.Nodes.Remove(node);
            }

            // add missing
            var add = from transfer in displayMap.Values
                      where !TransferMap.ContainsKey(transfer.FileID)
                      select transfer;

            foreach (OpTransfer transfer in add)
            {
                TransferNode node = new TransferNode(Service, transfer);
                TransferMap[transfer.FileID] = node;
                TransferList.Nodes.Add(node);

                if (!DefaultCollapse)
                {
                    node.Expand();
                }
            }

            foreach (TransferNode transfer in TransferList.Nodes)
            {
                transfer.Refresh();
            }

            TransferList.Invalidate();
        }
Exemplo n.º 12
0
    internal CryptoTransferTransactionBody(TransferParams transfers) : this()
    {
        if (transfers == null)
        {
            throw new ArgumentNullException(nameof(transfers), "The transfer parametes cannot not be null.");
        }
        var missingTransfers = true;

        if (transfers.CryptoTransfers is not null)
        {
            long sum         = 0;
            var  netRequests = new Dictionary <AddressOrAlias, long>();
            foreach (var transfer in transfers.CryptoTransfers)
            {
                if (transfer.Value == 0)
                {
                    throw new ArgumentOutOfRangeException(nameof(transfers.CryptoTransfers), $"The amount to transfer crypto to/from {transfer.Key} must be a value, negative for transfers out, and positive for transfers in. A value of zero is not allowed.");
                }
                if (netRequests.TryGetValue(transfer.Key, out long value))
                {
                    netRequests[transfer.Key] = value + transfer.Value;
                }
                else
                {
                    netRequests[transfer.Key] = transfer.Value;
                }
                sum += transfer.Value;
            }
            if (netRequests.Count == 0)
            {
                throw new ArgumentOutOfRangeException(nameof(transfers.CryptoTransfers), "The dictionary of crypto transfers can not be empty.");
            }
            if (sum != 0)
            {
                throw new ArgumentOutOfRangeException(nameof(transfers.CryptoTransfers), "The sum of crypto sends and receives does not balance.");
            }
            var xferList = new TransferList();
            foreach (var transfer in netRequests)
            {
                if (transfer.Value != 0)
                {
                    xferList.AccountAmounts.Add(new AccountAmount(transfer.Key, transfer.Value));
                }
            }
            missingTransfers = xferList.AccountAmounts.Count == 0;
            Transfers        = xferList;
        }
        if (transfers.TokenTransfers is not null)
        {
            foreach (var tokenGroup in transfers.TokenTransfers.GroupBy(txfer => txfer.Token))
            {
                if (tokenGroup.Key.IsNullOrNone())
                {
                    throw new ArgumentException("Token", "The list of token transfers cannot contain a null or empty Token value.");
                }
                long sum         = 0;
                var  netRequests = new Dictionary <AddressOrAlias, long>();
                foreach (var xfer in tokenGroup)
                {
                    if (xfer.Address.IsNullOrNone())
                    {
                        throw new ArgumentException(nameof(xfer.Address), "The list of token transfers cannot contain a null or empty account value.");
                    }
                    if (xfer.Amount == 0)
                    {
                        throw new ArgumentOutOfRangeException(nameof(xfer.Amount), $"The amount to transfer tokens to/from {xfer.Address} must be a value, negative for transfers out, and positive for transfers in. A value of zero is not allowed.");
                    }
                    if (netRequests.TryGetValue(xfer.Address, out long value))
                    {
                        netRequests[xfer.Address] = value + xfer.Amount;
                    }
                    else
                    {
                        netRequests[xfer.Address] = xfer.Amount;
                    }
                    sum += xfer.Amount;
                }
                if (sum != 0)
                {
                    throw new ArgumentOutOfRangeException(nameof(transfers.TokenTransfers), $"The sum of token sends and receives for {tokenGroup.Key.ShardNum}.{tokenGroup.Key.RealmNum}.{tokenGroup.Key.AccountNum} does not balance.");
                }
                var xferList = new TokenTransferList
                {
                    Token = new TokenID(tokenGroup.Key)
                };
                foreach (var netTransfer in netRequests)
                {
                    if (netTransfer.Value != 0)
                    {
                        xferList.Transfers.Add(new AccountAmount(netTransfer.Key, netTransfer.Value));
                    }
                }
                if (xferList.Transfers.Count > 0)
                {
                    TokenTransfers.Add(xferList);
                }
            }
        }
        if (transfers.AssetTransfers is not null)
        {
            foreach (var tokenGroup in transfers.AssetTransfers.GroupBy(txfer => (Address)txfer.Asset))
            {
                if (tokenGroup.Key.IsNullOrNone())
                {
                    throw new ArgumentException("Asset", "The list of asset token transfers cannot contain a null or empty Asset Token address.");
                }
                var netRequests = new Dictionary <long, AssetTransfer>();
                foreach (var xfer in tokenGroup)
                {
                    if (xfer.Asset.SerialNum <= 0)
                    {
                        throw new ArgumentException(nameof(xfer.Asset), "The list of asset transfers cannot contain an asset without a serial number.");
                    }
                    if (xfer.From.IsNullOrNone())
                    {
                        throw new ArgumentException(nameof(xfer.From), "The list of asset transfers cannot contain a null or empty from account value.");
                    }
                    if (xfer.To.IsNullOrNone())
                    {
                        throw new ArgumentException(nameof(xfer.From), "The list of asset transfers cannot contain a null or empty to account value.");
                    }
                    if (netRequests.ContainsKey(xfer.Asset.SerialNum))
                    {
                        throw new ArgumentException(nameof(xfer.Asset), "The list of asset transfers cannot contain the same asset in multiple transfers at once.");
                    }
                    else
                    {
                        netRequests[xfer.Asset.SerialNum] = xfer;
                    }
                }
                if (netRequests.Count > 0)
                {
                    var xferList = new TokenTransferList
                    {
                        Token = new TokenID(tokenGroup.Key)
                    };
                    foreach (var netTransfer in netRequests)
                    {
                        xferList.NftTransfers.Add(new NftTransfer(netTransfer.Value));
                    }
                    TokenTransfers.Add(xferList);
                }
            }
        }
        missingTransfers &= TokenTransfers.Count == 0;
        if (missingTransfers)
        {
            throw new ArgumentException(nameof(transfers), "Both crypto, token and asset transfer lists are null or empty.  At least one must include net transfers.");
        }
    }