Пример #1
0
        private string GetContractDocTypeName(RequestResultBase requestResult, DocflowRepositoryBase db, int id)
        {
            var docTypeModel = db.GetDocTypes().FirstOrDefault(type => type.id == id);

            if (docTypeModel == null)
            {
                MarkValidationError(requestResult, "Указан несуществующий тип документа!");
                return(null);
            }
            return(docTypeModel.name);
        }
Пример #2
0
        static ModelValidator()
        {
            allValidatorsDict.Add(_CONTRAGENT_KEY, new ModelValidator());
            allValidatorsDict.Add(_SHIPPER_KEY, new ModelValidator());
            allValidatorsDict.Add(_SHIPMENT_KEY, new ModelValidator());
            allValidatorsDict.Add(_CONTRACT_DOC_KEY, new ModelValidator());
            allValidatorsDict.Add(_DOC_STATUS_KEY, new ModelValidator());

            allValidatorsDict[_CONTRAGENT_KEY].modelValidatorsDict.Add("name", (object val) =>
            {
                if (val.ToString().Length > 256)
                {
                    return("Длина названия превышает 256 символов!");
                }
                else
                {
                    return(null);
                }
            });

            allValidatorsDict[_SHIPPER_KEY].modelValidatorsDict.Add("name", (object val) =>
            {
                if (val.ToString().Length > 50)
                {
                    return("Длина названия превышает 50 символов!");
                }
                else
                {
                    return(null);
                }
            });

            #region For docStatuses
            allValidatorsDict[_DOC_STATUS_KEY].modelValidatorsDict.Add("name", (object val) =>
            {
                if (val.ToString().Length > 50)
                {
                    return("Длина названия превышает 50 символов!");
                }
                else
                {
                    return(null);
                }
            });
            allValidatorsDict[_SHIPMENT_KEY].modelValidatorsDict.Add("docTypeNames", (object val) =>
            {
                if (val.ToString().Length > 150)
                {
                    return("Длина списка названий целевых документов " +
                           "превышает 256 символов!");
                }
                else
                {
                    return(null);
                }
            });
            #endregion

            #region For shipments
            allValidatorsDict[_SHIPMENT_KEY].modelValidatorsDict.Add("fromPerson", (object val) =>
            {
                if (val.ToString().Length > 100)
                {
                    return("Длина отправителя превышает 100 символов!");
                }
                else
                {
                    return(null);
                }
            });
            allValidatorsDict[_SHIPMENT_KEY].modelValidatorsDict.Add("toAddr", (object val) =>
            {
                if (val.ToString().Length > 256)
                {
                    return("Длина адреса получателя превышает 256 символов!");
                }
                else
                {
                    return(null);
                }
            });
            allValidatorsDict[_SHIPMENT_KEY].modelValidatorsDict.Add("descr", (object val) =>
            {
                if (val.ToString().Length > 256)
                {
                    return("Длина описания превышает 256 символов!");
                }
                else
                {
                    return(null);
                }
            });
            allValidatorsDict["trackNum"].modelValidatorsDict.Add("descr", (object val) =>
            {
                if (val.ToString().Length > 20)
                {
                    return("Длина трек-номера превышает 20 символов!");
                }
                else
                {
                    return(null);
                }
            });
            allValidatorsDict["trackNum"].modelValidatorsDict.Add("statusID", (object val) =>
            {
                int.TryParse(val?.ToString(), out int id);
                if (!IsStatusApplicableToDoc("shipment", id))
                {
                    return("Статус не указан или указан некорректный!");
                }
                else
                {
                    return(null);
                }
            });
            #endregion

            #region For ContractDocs
            allValidatorsDict[_CONTRACT_DOC_KEY].modelValidatorsDict.Add("code", (object val) =>
            {
                if (val.ToString().Length > 50)
                {
                    return("Длина кода превышает 50 символов!");
                }
                else
                {
                    return(null);
                }
            });
            allValidatorsDict[_CONTRACT_DOC_KEY].modelValidatorsDict.Add("note", (object val) =>
            {
                if (val.ToString().Length > 256)
                {
                    return("Длина заметки превышает 256 символов!");
                }
                else
                {
                    return(null);
                }
            });
            allValidatorsDict[_SHIPMENT_KEY].modelValidatorsDict.Add("statusID", (object val) =>
            {
                var docTypeID = DataHelper.GetValByRefl(_currentValidatedItem, "docTypeID");
                int.TryParse(docTypeID?.ToString(), out int intDocTypeID);
                var docTypeModel   = _db.GetDocTypes().FirstOrDefault(type => type.id == intDocTypeID);
                string docTypeName = docTypeModel?.name;
                int.TryParse(val?.ToString(), out int id);
                if (!IsStatusApplicableToDoc(docTypeName, id))
                {
                    return("Статус не задан или некорректный!");
                }
                else
                {
                    return(null);
                }
            });
            #endregion
        }