Ejemplo n.º 1
0
        public CoreBlock(long blockId, short issuer, int revision, long timestamp, long nextAccountId, int nextChainId, Hash previousBlockHash, Hash lastCoreOperationHash, List <CoreOperation> operations, List <CoreTransaction> transactions) :
            base(ChainType.Core, Protocol.Version, blockId, Protocol.CoreChainId, 0, issuer, revision, timestamp, previousBlockHash)
        {
            NextAccountId = nextAccountId;
            NextChainId   = nextChainId;

            _transactions = transactions;

            using (var memoryStream = new MemoryStream())
            {
                var packer = new Packer(memoryStream);

                PackHeader(packer);

                packer.Pack(NextAccountId);
                packer.Pack(NextChainId);

                var count = operations.Count;
                packer.Pack(count);

                for (var i = 0; i < count; i++)
                {
                    var coreOperation = operations[i];

                    var start = packer.Position;
                    coreOperation.Store(packer);
                    var end = packer.Position;

                    packer.Position = start;

                    var hash     = Hash.Generate(ValidationOperation.ValidationHashType, new PartialStream(memoryStream, start, end - start));
                    var hashhash = Hash.HashHash(lastCoreOperationHash, hash, ValidationOperation.ValidationHashType);

                    lastCoreOperationHash = hashhash;

                    var validation = new ValidationOperation(hashhash);

                    packer.Position = end;
                    validation.Pack(packer);

                    _items.Add(new TransactionItem <CoreOperation>(coreOperation, validation));
                }

                count = _transactions.Count;
                packer.Pack(count);
                for (var i = 0; i < count; i++)
                {
                    _transactions[i].Store(packer);
                }

                memoryStream.Flush();

                var position = packer.Position;
                packer.Position = 0;

                BlockHash = Hash.Generate(Protocol.TransactionHashType, memoryStream);

                BlockData = memoryStream.ToArray();
            }
        }
Ejemplo n.º 2
0
        private void btnAddCrudShop_Click(object sender, EventArgs e)
        {
            ProductDAL productDAL = new ProductDAL();
            UserDAL    userDAL    = new UserDAL();

            if (cmbCategoryCrudShop.Text != "" && txbCountCrudShop.Text != "" && txbPriceCrudShop.Text != "")
            {
                Product product = new Product()
                {
                    Name       = this.txbNameCrudShop.Text,
                    CategoryId = Convert.ToInt32(this.cmbCategoryCrudShop.Text.Split('-')[0]),
                    Count      = Convert.ToInt32(this.txbCountCrudShop.Text),
                    Price      = Convert.ToDouble(this.txbPriceCrudShop.Text),
                    UserId     = CurrentUser.Id,
                    Status     = (int)ProductStatusEnum.Active,
                };
                bool isValid = ValidationOperation <Product> .ValidateOperation(product);

                if (CurrentUser.Type == 2)
                {
                    product.UserId = userDAL.GetByFilter(x => x.Email == this.cmbUserCrudProducts.Text.Split('-')[0]).Id;
                }
                if (isValid)
                {
                    productDAL.Add(product);
                    MessageBox.Show("Successfully Added!");
                    productDAL.GetGridData(dgvShop);
                }
            }
            else
            {
                MessageBox.Show("The field is required");
            }
        }
Ejemplo n.º 3
0
        private void btnRegister_Click(object sender, EventArgs e)
        {
            User user = new User()
            {
                Name     = this.txbRegisterName.Text,
                Surname  = this.txbRegisterSurname.Text,
                Email    = this.txbRegisterEmail.Text,
                Password = this.txbRegisterPassword.Text,
                Phone    = this.txbRegisterPhone.Text,
                Type     = (int)UserTypeEnum.User,
            };
            bool isValid = ValidationOperation <User> .ValidateOperation(user);

            bool IsUnique = EmailValidation.IsUniqueEmail(user);

            if (IsUnique)
            {
                if (isValid)
                {
                    UserDAL userDAL = new UserDAL();
                    userDAL.Add(user);
                    MessageBox.Show("Successfully Registered!");
                    this.Close();
                }
            }
            else
            {
                MessageBox.Show("The email is already used.");
            }
        }
Ejemplo n.º 4
0
        public TransactionItem(Unpacker unpacker)
        {
            Transaction = Operation.Restore <TransactionType>(unpacker);
            Validation  = new ValidationOperation(unpacker);

            if (Transaction == null || Validation == null)
            {
                throw new Exception("Invalid TransactionType");
            }
        }
Ejemplo n.º 5
0
        public ValidationOperation RequiredOperation(ValidationField validationField)
        {
            var operation = new ValidationOperation
            {
                FieldPath     = validationField.FieldPath,
                SectionName   = validationField.SectionName,
                OperationType = ValidationOperationType.Required,
                ControlType   = validationField.ControlType,
            };

            return(operation);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Constructs a Required Operation for a field
        /// </summary>
        private ValidationOperation RequiredOperation(ValidationField validationField)
        {
            var operation = new ValidationOperation
            {
                FieldPath        = validationField.FieldPath,
                FieldType        = (int)validationField.FieldType, // todo: change property type to FieldType
                SectionName      = validationField.SectionName,
                OperationType    = ValidationOperationType.Required,
                ControlType      = validationField.ControlType,
                PropertyOverride = validationField.PropertyOverride
            };

            return(operation);
        }
Ejemplo n.º 7
0
        public ValidationOperation UniqueOperation(ValidationField validationField)
        {
            var operation = new ValidationOperation
            {
                FieldPath        = validationField.FieldPath,
                FieldType        = (int)validationField.FieldType,
                SectionName      = validationField.SectionName,
                ControlType      = validationField.ControlType,
                OperationType    = ValidationOperationType.Unique,
                PropertyOverride = validationField.PropertyOverride
            };

            return(operation);
        }
Ejemplo n.º 8
0
        public ValidationOperation ContainsOperation(ValidationField validationField, List <string> containsValues)
        {
            var operation = new ValidationOperation
            {
                FieldPath      = validationField.FieldPath,
                SectionName    = validationField.SectionName,
                OperationType  = ValidationOperationType.Contains,
                ContainsValues = containsValues,
                Operand        = ValidationOperand.In,
                ControlType    = validationField.ControlType,
            };

            return(operation);
        }
Ejemplo n.º 9
0
        private void btnDeleteCrudShop_Click(object sender, EventArgs e)
        {
            ProductDAL   productDAL = new ProductDAL();
            var          product    = productDAL.GetByFilter(x => x.Id == Convert.ToInt32(dgvShop.CurrentRow.Cells[0].Value));
            DialogResult result     = MessageBox.Show("Are you sure?", "Warning", MessageBoxButtons.OKCancel);

            if (result == DialogResult.OK)
            {
                if (product.UserId == CurrentUser.Id || CurrentUser.Type == 2)
                {
                    if (CurrentUser.Type == 2)
                    {
                        LogDAL LogDAL        = new LogDAL();
                        bool   productExists = LogDAL.ProductExists(Convert.ToInt32(dgvShop.CurrentRow.Cells[0].Value));
                        Log    log           = new Log()
                        {
                            UserId       = CurrentUser.Id,
                            Description  = txbDescriptionCrudProducts.Text,
                            ProductId    = Convert.ToInt32(dgvShop.CurrentRow.Cells[0].Value),
                            Type         = Convert.ToInt32(LogTypeEnum.Delete),
                            ModifiedDate = DateTime.Now
                        };
                        if (productExists)
                        {
                            int logId = LogDAL.GetByFilter(x => x.ProductId == Convert.ToInt32(dgvShop.CurrentRow.Cells[0].Value)).Id;
                            log.Id = logId;
                        }
                        bool isValid = ValidationOperation <Log> .ValidateOperation(log);

                        if (isValid)
                        {
                            productDAL.Delete(Convert.ToInt32(product.Id));
                            LogDAL.Update(log);
                            MessageBox.Show("Successfully Deleted");
                            productDAL.GetGridData(dgvShop);
                        }
                    }
                    else
                    {
                        productDAL.Delete(Convert.ToInt32(product.Id));
                        MessageBox.Show("Successfully Deleted");
                        productDAL.GetGridData(dgvShop);
                    }
                }
                else
                {
                    MessageBox.Show("You are not allowed to delete others' products");
                }
            }
        }
Ejemplo n.º 10
0
        public ValidationOperation Validate(string name)
        {
            var             operation = new ValidationOperation();
            DispatcherTimer timer     = new DispatcherTimer();

            timer.Interval = new TimeSpan(0, 0, 0, 0, 100); // 100 Milliseconds
            timer.Tick    += (s, e) =>
            {
                timer.Stop();
                operation.Result = new ValidationResult(name);
            };
            timer.Start();

            return(operation);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Constructs a Value Count Operaration for a field
        /// </summary>
        public ValidationOperation ValueCountOperation(ValidationField validationField, string limit)
        {
            var operation = new ValidationOperation
            {
                FieldPath        = validationField.FieldPath,
                FieldType        = (int)validationField.FieldType,
                SectionName      = validationField.SectionName,
                OperationType    = ValidationOperationType.ValueCount,
                CompareValue     = limit,
                ControlType      = validationField.ControlType,
                PropertyOverride = validationField.PropertyOverride
            };

            return(operation);
        }
Ejemplo n.º 12
0
        public ValidationOperation MaxRecordCountOperation(ValidationField validationField, string count)
        {
            var operation = new ValidationOperation
            {
                FieldPath        = validationField.FieldPath,
                SectionName      = validationField.SectionName,
                ControlType      = validationField.ControlType,
                CompareValue     = count,
                FieldType        = (int)validationField.FieldType,
                OperationType    = ValidationOperationType.MaxRecordCount,
                PropertyOverride = validationField.PropertyOverride
            };

            return(operation);
        }
Ejemplo n.º 13
0
        public ValidationOperation CompareToCurrentDateOperation(ValidationField validationField)
        {
            var operation = new ValidationOperation
            {
                FieldPath     = validationField.FieldPath,
                SectionName   = validationField.SectionName,
                OperationType = ValidationOperationType.CompareToCurrentDate,
                ControlType   = validationField.ControlType,
                Operand       = ValidationOperand.LessThanEqual,
                FieldMask     = validationField.Mask,
                CompareToMask = validationField.CompareToMask
            };

            return(operation);
        }
Ejemplo n.º 14
0
        public ValidationOperation ComparisonOperation(ValidationField validationField, string operand)
        {
            var operation = new ValidationOperation
            {
                FieldPath     = validationField.FieldPath,
                SectionName   = validationField.SectionName,
                OperationType = ValidationOperationType.Comparison,
                ControlType   = validationField.ControlType,
                Operand       = operand,
                FieldMask     = validationField.Mask,
                CompareToMask = validationField.CompareToMask
            };

            return(operation);
        }
Ejemplo n.º 15
0
        private ValidationOperation RelatedOffenseContainsOperation(ValidationField offenseField, List <string> containsValues)
        {
            var operation = new ValidationOperation
            {
                FieldPath        = offenseField.FieldPath,
                FieldType        = (int)offenseField.FieldType,
                SectionName      = offenseField.SectionName,
                OperationType    = ValidationOperationType.RelatedOffenseContains,
                ContainsValues   = containsValues,
                Operand          = ValidationOperand.In,
                ControlType      = offenseField.ControlType,
                PropertyOverride = offenseField.PropertyOverride
            };

            return(operation);
        }
Ejemplo n.º 16
0
        /// <summary>
        /// Constructs a Comparison Operation for a field
        /// </summary>
        private ValidationOperation ComparisonOperation(ValidationField field, string operand)
        {
            var operation = new ValidationOperation
            {
                FieldPath        = field.FieldPath,
                FieldType        = (int)field.FieldType,
                SectionName      = field.SectionName,
                OperationType    = ValidationOperationType.Comparison,
                ContainsValues   = null,
                Operand          = operand,
                ControlType      = field.ControlType,
                PropertyOverride = field.PropertyOverride
            };

            return(operation);
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Constructs a Compare to Current Date Operation for a field
        /// </summary>
        private ValidationOperation CompareToCurrentDateOperation(ValidationField field)
        {
            var operation = new ValidationOperation
            {
                FieldPath        = field.FieldPath,
                FieldType        = (int)field.FieldType,
                SectionName      = field.SectionName,
                OperationType    = ValidationOperationType.CompareToCurrentDate,
                ControlType      = field.ControlType,
                Operand          = ValidationOperand.LessThanEqual,
                FieldMask        = field.Mask,
                CompareToMask    = field.CompareToMask,
                PropertyOverride = field.PropertyOverride
            };

            return(operation);
        }
Ejemplo n.º 18
0
        private ValidationOperation RegularExpressionOperation(ValidationField field, string expression)
        {
            var operation = new ValidationOperation
            {
                FieldPath        = field.FieldPath,
                FieldType        = (int)field.FieldType,
                SectionName      = field.SectionName,
                OperationType    = ValidationOperationType.RegularExpression,
                ControlType      = field.ControlType,
                Operand          = expression,
                FieldMask        = field.Mask,
                CompareToMask    = field.CompareToMask,
                PropertyOverride = field.PropertyOverride
            };

            return(operation);
        }
Ejemplo n.º 19
0
        private void btnUpdateCategories_Click(object sender, EventArgs e)
        {
            CategoryDAL categoryDAL = new CategoryDAL();
            Category    category    = new Category()
            {
                Id   = Convert.ToInt32(dgvCategory.CurrentRow.Cells[0].Value),
                Name = this.txbNameCategories.Text
            };
            bool isValid = ValidationOperation <Category> .ValidateOperation(category);

            if (isValid)
            {
                categoryDAL.Update(category);
                MessageBox.Show("Successfully Updated");
                categoryDAL.GetGridData(dgvCategory);
            }
        }
Ejemplo n.º 20
0
        private void btnAddCategories_Click(object sender, EventArgs e)
        {
            Category category = new Category()
            {
                Name = this.txbNameCategories.Text
            };

            bool isValid = ValidationOperation <Category> .ValidateOperation(category);

            if (isValid)
            {
                CategoryDAL categoryDAL = new CategoryDAL();
                categoryDAL.Add(category);
                MessageBox.Show("Successfully Added!");
                categoryDAL.GetGridData(dgvCategory);
            }
        }
Ejemplo n.º 21
0
        private ValidationOperation RangeOperation(ValidationField field, string lowerBound, string upperBound)
        {
            var operation = new ValidationOperation
            {
                FieldPath        = field.FieldPath,
                FieldType        = (int)field.FieldType,
                SectionName      = field.SectionName,
                OperationType    = ValidationOperationType.Range,
                ControlType      = field.ControlType,
                PropertyOverride = field.PropertyOverride,
                Operand          = null,
                FieldMask        = field.Mask,
                CompareToMask    = field.CompareToMask,
                LowerBound       = lowerBound,
                UpperBound       = upperBound
            };

            return(operation);
        }
Ejemplo n.º 22
0
        public void SetUp()
        {
            validationBuilderObj             = new ValidationBuilder(RuleSource.Agency);
            validationFieldObj               = new ValidationField();
            validationMessage                = new ValidationMessage();
            validationFieldObj.FieldPath     = "Offenses";
            validationFieldObj.SectionName   = "Events";
            validationFieldObj.ControlType   = ControlType.Offense;
            validationFieldObj.Mask          = Mask.Currency;
            validationFieldObj.CompareToMask = Mask.Currency;
            validationMessage.TargetPath     = "Events";
            validationMessage.Message        = "Message";
            list.Add("data");
            list.Add("data1");
            lstValidationField = new List <ValidationField>();
            lstValidationField.Add(validationFieldObj);
            lstValidationOperation = new List <ValidationOperation>();
            var validationOperationObj = new ValidationOperation();

            validationOperationObj.FieldPath = "Drugs";
            validationOperationObj.FieldType = 1;
            lstValidationOperation.Add(validationOperationObj);
        }
Ejemplo n.º 23
0
        public CoreBlock(int packerStartPosition, ushort protocolVersion, long blockId, int chainId, uint chainIndex, short issuer, int revision, long timestamp, Hash previousBlockHash, Unpacker unpacker, byte[] blockData) :
            base(ChainType.Core, protocolVersion, blockId, chainId, chainIndex, issuer, revision, timestamp, previousBlockHash)
        {
            var startPosition = packerStartPosition;

            unpacker.Unpack(out NextAccountId);
            unpacker.Unpack(out NextChainId);

            var count = unpacker.UnpackInt();

            for (var i = 0; i < count; i++)
            {
                var coreOperation = Operation.Restore <CoreOperation>(unpacker);
                var validation    = new ValidationOperation(unpacker);

                _items.Add(new TransactionItem <CoreOperation>(coreOperation, validation));
            }

            count = unpacker.UnpackInt();
            for (var i = 0; i < count; i++)
            {
                var transaction = Operation.Restore <CoreTransaction>(unpacker);
                _transactions.Add(transaction);
            }

            var size = unpacker.Position - startPosition;

            if (blockData == null)
            {
                unpacker.Position = startPosition;
                unpacker.Unpack(out blockData, size);
            }

            BlockData = blockData;

            BlockHash = Hash.Generate(Protocol.TransactionHashType, new PartialStream(unpacker.Stream, startPosition, size));
        }
Ejemplo n.º 24
0
 public TransactionItem(TransactionType transaction, ValidationOperation validation)
 {
     Transaction = transaction;
     Validation  = validation;
 }
Ejemplo n.º 25
0
        private void btnUpdateCrudShop_Click(object sender, EventArgs e)
        {
            ProductDAL productDAL = new ProductDAL();
            UserDAL    userDAL    = new UserDAL();
            var        product    = productDAL.GetByFilter(x => x.Id == Convert.ToInt32(dgvShop.CurrentRow.Cells[0].Value));

            if (cmbCategoryCrudShop.Text != "" && txbCountCrudShop.Text != "" && txbPriceCrudShop.Text != "")
            {
                if (product.UserId == CurrentUser.Id || CurrentUser.Type == 2)
                {
                    Product productItem = new Product()
                    {
                        Id         = Convert.ToInt32(dgvShop.CurrentRow.Cells[0].Value),
                        Name       = this.txbNameCrudShop.Text,
                        CategoryId = Convert.ToInt32(cmbCategoryCrudShop.Text.Split('-')[0]),
                        Count      = Convert.ToInt32(this.txbCountCrudShop.Text),
                        Price      = Convert.ToDouble(this.txbPriceCrudShop.Text),
                        UserId     = product.UserId,
                        Status     = (int)ProductStatusEnum.Active,
                    };
                    if (CurrentUser.Type == 2)
                    {
                        LogDAL LogDAL        = new LogDAL();
                        bool   productExists = LogDAL.ProductExists(Convert.ToInt32(dgvShop.CurrentRow.Cells[0].Value));
                        Log    log           = new Log()
                        {
                            UserId       = CurrentUser.Id,
                            Description  = txbDescriptionCrudProducts.Text,
                            ProductId    = Convert.ToInt32(dgvShop.CurrentRow.Cells[0].Value),
                            Type         = Convert.ToInt32(LogTypeEnum.Update),
                            ModifiedDate = DateTime.Now
                        };
                        if (productExists)
                        {
                            int logId = LogDAL.GetByFilter(x => x.ProductId == Convert.ToInt32(dgvShop.CurrentRow.Cells[0].Value)).Id;
                            log.Id = logId;
                        }
                        bool isValid = ValidationOperation <Log> .ValidateOperation(log);

                        if (isValid)
                        {
                            product.UserId = userDAL.GetByFilter(x => x.Email == this.cmbUserCrudProducts.Text.Split('-')[0]).Id;
                            productDAL.Update(productItem);
                            MessageBox.Show("Successfully Updated");
                            LogDAL.Update(log);
                            productDAL.GetGridData(dgvShop);
                        }
                    }
                    else
                    {
                        productDAL.Update(productItem);
                        MessageBox.Show("Successfully Updated");
                        productDAL.GetGridData(dgvShop);
                    }
                }
                else
                {
                    MessageBox.Show("You are not allowed to update others' products");
                }
            }
            else
            {
                MessageBox.Show("The field is required");
            }
        }