public void WhenInvalid()
        {
            Inventor context = new Inventor("Nikola Tesla", new DateTime(1856, 7, 9), "Serbian");
            IValidationErrors errors = new ValidationErrors();

            ErrorMessageAction action = new ErrorMessageAction("{0}, {1}", "errors");
            action.Parameters = new IExpression[] {Expression.Parse("Name"), Expression.Parse("Nationality")};
            
            action.Execute(false, context, null, errors);
            Assert.IsFalse(errors.IsEmpty);
            Assert.AreEqual(1, errors.GetErrors("errors").Count);
            Assert.AreEqual(context.Name + ", " + context.Nationality, errors.GetResolvedErrors("errors", new NullMessageSource())[0]);
        }
        public void FalseScalarExpression()
        {
            Inventor tesla = new Inventor();
            tesla.Name = "Soltan Gris";

            ConditionValidator validator = new ConditionValidator(Expression.Parse("Name == 'Nikola Tesla'"), null);
            validator.Actions = new ErrorMessageAction[] {new ErrorMessageAction("Wrong name", "InventorValidator") };
            IValidationErrors errors = new ValidationErrors();
            Assert.IsFalse(validator.Validate(tesla, errors));
            Assert.IsFalse(errors.IsEmpty);
            IList<string> namedErrors = errors.GetResolvedErrors("InventorValidator", new NullMessageSource());
            Assert.AreEqual(1, namedErrors.Count);
            string error = (string) namedErrors[0];
            Assert.AreEqual("Wrong name", error);
        }
Beispiel #3
0
        /// <summary>
        /// 创建一个菜单
        /// </summary>
        /// <param name="validationErrors">返回的错误信息</param>
        /// <param name="db">数据库上下文</param>
        /// <param name="entity">一个菜单</param>
        /// <returns></returns>
        public bool Create(ref ValidationErrors validationErrors, SysEntities db, SysMenu entity)
        {
            int count = 1;

            foreach (string item in entity.SysOperationId.GetIdSort())
            {
                SysOperation sys = new SysOperation { Id = item };
                db.SysOperation.Attach(sys);
                entity.SysOperation.Add(sys);
                count++;
            }

            repository.Create(db, entity);
            if (count == repository.Save(db))
            {
                //创建后重置菜单编码
                List<int> flags = new List<int>();//层级
                GetMenus2(null, flags);
                db.SaveChanges();
                return true;
            }
            else
            {
                validationErrors.Add("创建出错了");
            }
            return false;
        }
 public void Size_WithShallowErrors()
 {
     ValidationErrors errors = new ValidationErrors();
     errors.AddError("country_name", new ValidationError("country_name", "1", "invalid country"));
     errors.AddError("another_field", new ValidationError("another_field", "2", "another message"));
     Assert.AreEqual(2, errors.Count);
 }
Beispiel #5
0
 public override void Validate(string value, ValidationErrors errors)
 {
     if (!IsPresent(value))
     {
         errors.Add(Key,ErrorMessage);
     }
 }
Beispiel #6
0
        /// <summary>
        /// 创建一个人员
        /// </summary>
        /// <param name="validationErrors">返回的错误信息</param>
        /// <param name="db">数据库上下文</param>
        /// <param name="entity">一个人员</param>
        /// <returns></returns>
        public bool Create(ref ValidationErrors validationErrors, SysEntities db, SysPerson entity)
        {
            int count = 1;

            foreach (string item in entity.SysRoleId.GetIdSort())
            {
                SysRole sys = new SysRole { Id = item };
                db.SysRole.Attach(sys);
                entity.SysRole.Add(sys);
                count++;
            }

            foreach (string item in entity.SysDocumentId.GetIdSort())
            {
                SysDocument sys = new SysDocument { Id = item };
                db.SysDocument.Attach(sys);
                entity.SysDocument.Add(sys);
                count++;
            }

            repository.Create(db, entity);
            if (count == repository.Save(db))
            {
                return true;
            }
            else
            {
                validationErrors.Add("创建出错了");
            }
            return false;
        }
 public void WithNegativeNumber()
 {
     RequiredValidator validator = new RequiredValidator();
     validator.Test = Expression.Parse("-100");
     IValidationErrors errors = new ValidationErrors();
     Assert.IsTrue(validator.Validate(null, errors));
 }
 public void WithNull()
 {
     RequiredValidator validator = new RequiredValidator();
     validator.Test = Expression.Parse("null");
     IValidationErrors errors = new ValidationErrors();
     Assert.IsFalse(validator.Validate(null, errors));
 }
 public bool Create(ref ValidationErrors errors, SysModuleOperateModel model)
 {
     try
     {
         SysModuleOperate entity = m_Rep.GetById(model.Id);
         if (entity != null)
         {
             errors.Add(Suggestion.PrimaryRepeat);
             return false;
         }
         entity = new SysModuleOperate();
         entity.Id = model.Id;
         entity.Name = model.Name;
         entity.KeyCode = model.KeyCode;
         entity.ModuleId = model.ModuleId;
         entity.IsValid = model.IsValid;
         entity.Sort = model.Sort;
         if (m_Rep.Create(entity) == 1)
         {
             return true;
         }
         else
         {
             errors.Add(Suggestion.InsertFail);
             return false;
         }
     }
     catch (Exception ex)
     {
         errors.Add(ex.Message);
         ExceptionHander.WriteException(ex);
         return false;
     }
 }
 public void OnField_WithValidationError()
 {
     ValidationErrors errors = new ValidationErrors();
     errors.AddError("country_name", new ValidationError("country_name", "91803", "invalid country"));
     Assert.AreEqual(ValidationErrorCode.ADDRESS_COUNTRY_NAME_IS_NOT_ACCEPTED, errors.OnField("country_name")[0].Code);
     Assert.AreEqual("invalid country", errors.OnField("country_name")[0].Message);
 }
 public bool Delete(ref ValidationErrors errors, string id)
 {
     try
     {
         //检查是否有下级
         if (dbContainer.SysModules.AsQueryable().Where(a => a.SysModule2.Id == id).Count() > 0)
         {
             errors.Add("有下属关联,请先删除下属!");
             return false;
         }
         m_Rep.Delete(dbContainer, id);
         if (dbContainer.SaveChanges() > 0)
         {
             //清理无用的项
             dbContainer.P_Sys_ClearUnusedRightOperate();
             return true;
         }
         else
         {
             return false;
         }
     }
     catch (Exception ex)
     {
         errors.Add(ex.Message);
         ExceptionHander.WriteException(ex);
         return false;
     }
 }
Beispiel #12
0
 public void Validate(string password, string salt, string hashedPassword, ValidationErrors errors)
 {
     if (RequiredValidator.IsPresent(password))//dont check salt and hashedPassword IsPresent
     {
         if (!new StringHasher().ComputedHashUsingGivenSaltMatchesGivenHash( password, salt, hashedPassword))
             errors.Add(Key, ErrorMessage);                
     }
 }
        public StudyIntegrityValidationFailure(ValidationErrors error, ValidationStudyInfo validationStudyInfo, string details)
            : base(details)
        {
            Platform.CheckForNullReference(validationStudyInfo, "validationStudyInfo");

            _error = error;
            _validationStudyInfo = validationStudyInfo;
        }
 public override void Validate(string value, ValidationErrors errors)
 {
     if (RequiredValidator.IsPresent(value))
     {
         if(value.Length > _maxLength || value.Length < _minLength)
             errors.Add(Key,ErrorMessage);
     }
 }
Beispiel #15
0
        public override void Validate(string guidstring, ValidationErrors errors)
        {
            Guid guid;

            if (!Guid.TryParse(guidstring, out guid))
            {
                errors.Add(Key, ErrorMessage);
            }
        }
        public void ForObject_WithNestedErrors()
        {
            ValidationErrors addressErrors = new ValidationErrors();
            addressErrors.AddError("country_name", new ValidationError("country_name", "91803", "invalid country"));

            ValidationErrors errors = new ValidationErrors();
            errors.AddErrors("address", addressErrors);
            Assert.AreEqual(ValidationErrorCode.ADDRESS_COUNTRY_NAME_IS_NOT_ACCEPTED, errors.ForObject("address").OnField("country_name")[0].Code);
            Assert.AreEqual("invalid country", errors.ForObject("address").OnField("country_name")[0].Message);
        }
Beispiel #17
0
        public override void Validate(string value, ValidationErrors errors)
        {
            if (RequiredValidator.IsPresent(value))
            {
                Regex regex = new Regex(_pattern);

                if (!regex.IsMatch(value.Trim()))
                    errors.Add(Key,ErrorMessage);
            }
        }
 public void ForObject_WorksWithAllCommonCasing()
 {
     ValidationErrors nestedErrors = new ValidationErrors();
     ValidationErrors errors = new ValidationErrors();
     errors.AddErrors("credit-card", nestedErrors);
     Assert.AreEqual(nestedErrors, errors.ForObject("credit-card"));
     Assert.AreEqual(nestedErrors, errors.ForObject("credit_card"));
     Assert.AreEqual(nestedErrors, errors.ForObject("creditCard"));
     Assert.AreEqual(nestedErrors, errors.ForObject("CreditCard"));
 }
 public void OnField_WorksWithAllCommonCasing()
 {
     ValidationError fieldError = new ValidationError("", "1", "");
     ValidationErrors errors = new ValidationErrors();
     errors.AddError("country_name", fieldError);
     Assert.AreEqual(fieldError, errors.OnField("country_name")[0]);
     Assert.AreEqual(fieldError, errors.OnField("country-name")[0]);
     Assert.AreEqual(fieldError, errors.OnField("countryName")[0]);
     Assert.AreEqual(fieldError, errors.OnField("CountryName")[0]);
 }
Beispiel #20
0
        public void ShouldBuildAnElementFromErrors()
        {
            var error = new ValidationError("some error");
            var errors = new ValidationErrors<ParentInput>().Add(x => x.Child, error);
            var elementProvider = new Testable(typeof(NodeProvider<ParentInput>)).Create();

            var node = (NodeElement)elementProvider.With(errors).Build();

            Assert.That(node.Id, Is.Empty);
            var childElement = (LeafElement)node.Elements["Child"];
            Assert.That(childElement.Error, Is.EqualTo(error));
        }
Beispiel #21
0
        public override void Validate(string value, ValidationErrors errors)
        {
            if (RequiredValidator.IsPresent(value))
            {
                int result = int.MaxValue;
                if (!int.TryParse(value, out result))
                {

                    //errors.Add(Key,ErrorMessage);
                }

            }
        }
Beispiel #22
0
 /// <summary>
 /// 创建一个文档评论
 /// </summary>
 /// <param name="validationErrors">返回的错误信息</param>
 /// <param name="db">数据库上下文</param>
 /// <param name="entity">一个文档评论</param>
 /// <returns></returns>
 public bool Create(ref ValidationErrors validationErrors, SysDocumentTalk entity)
 {
     try
     {
         repository.Create(entity);
         return true;
     }
     catch (Exception ex)
     {
         validationErrors.Add(ex.Message);
         ExceptionsHander.WriteExceptions(ex);
     }
     return false;
 }
        void ValidateNeedsLabels(Issue issue, ValidationErrors validationErrors, Repository repository)
        {
            var lastActivityOnIssue = issue.UpdatedAt; //todo: does this include comments?

            if (issue.Labels.Any(l => l.Name == "Type: Bug") && !issue.Labels.Any(l => l.Name.StartsWith("Needs:")))
            {
                if (lastActivityOnIssue < DateTime.UtcNow.AddDays(-3))
                {
                    validationErrors.Add(new ValidationError
                    {
                        Reason = "This bug doesn't seem to be triaged, use one of the `Needs: X` labels to remember what the next steps are",
                        Issue = issue,
                        Repository = repository
                    });
                }

                return;
            }

            if (issue.Labels.Any(l => l.Name == "Needs: Triage") && lastActivityOnIssue < DateTime.UtcNow.AddDays(-3))
            {
                validationErrors.Add(new ValidationError
                {
                    Reason = "Issue needs triage but hasn't been updated for 3 days",
                    Issue = issue,
                    Repository = repository
                });
            }

            if (issue.Labels.Any(l => l.Name == "Needs: Reproduction") && lastActivityOnIssue < DateTime.UtcNow.AddDays(-7))
            {
                validationErrors.Add(new ValidationError
                {
                    Reason = "Issue needs a repro but hasn't been touched in the last 7 days",
                    Issue = issue,
                    Repository = repository
                });
            }

            if (issue.Labels.Any(l => l.Name == "Needs: Scheduling") && lastActivityOnIssue < DateTime.UtcNow.AddMonths(-3))
            {
                validationErrors.Add(new ValidationError
                {
                    Reason = "Issue needs scheduling but hasn't been touched in the last 3 months",
                    Issue = issue,
                    Repository = repository
                });
            }
        }
Beispiel #24
0
        public void Validate(string val, string compareVal, ValidationErrors errors)
        {
            if (RequiredValidator.IsPresent(val))//dont check compareVal IsPresent
            {
                if (!errors.ExistFor(Key))
                {
                    //only if there are no errors for val, do the compare
                    //so need to call this after running all validations of val to achieve this effect
                    if (val != compareVal)
                    {
                        errors.Add(Key,ErrorMessage);
                    }
                }
            }

        }
Beispiel #25
0
 public override void Validate(string value, ValidationErrors errors)
 {
     if (RequiredValidator.IsPresent(value))
     {
         int result = int.MaxValue;
         if (!int.TryParse(value, out result))
         {
             errors.Add(Key,ErrorMessage);
         }
         else
         {
             if (result > _maxValue || result < _minValue)
                 errors.Add(Key,ErrorMessageOutOfRange);
         }
     }
 }
        public void DeepCount_WithNestedErrors()
        {
            ValidationErrors addressErrors = new ValidationErrors();
            addressErrors.AddError("country_name", new ValidationError("country_name", "1", "invalid country"));
            addressErrors.AddError("another_field", new ValidationError("another_field", "2", "another message"));

            ValidationErrors errors = new ValidationErrors();
            errors.AddError("some_field", new ValidationError("some_field", "3", "some message"));
            errors.AddErrors("address", addressErrors);

            Assert.AreEqual(3, errors.DeepCount);
            Assert.AreEqual(1, errors.Count);

            Assert.AreEqual(2, errors.ForObject("address").DeepCount);
            Assert.AreEqual(2, errors.ForObject("address").Count);
        }
Beispiel #27
0
        /// <summary>
        /// 将异常信息写入数据库,或者文本文件
        /// </summary>
        /// <param name="ex"></param>
        public static void WriteExceptions(Exception ex)
        {
            SysException sysException = new SysException();
            sysException.CreateTime = DateTime.Now;
            sysException.Remark = ex.StackTrace;
            sysException.Message = ex.Message;
            sysException.LeiXing = "异常";
            sysException.Message = (ex.InnerException == null) ? string.Empty : ex.InnerException.Message;
            sysException.Id = Result.GetNewId();

            using (SysExceptionBLL sysExceptionRepository = new SysExceptionBLL())
            {
                ValidationErrors validationErrors = new ValidationErrors();
                sysExceptionRepository.Create(ref validationErrors, sysException);
                return;
            }
        }
        public static void WriteServiceLog(string message, string logType, LogOpration logOpration = LogOpration.Default)
        {
            try
            {
                //logOpration设置优先级高于配置节logEnabled
                bool logEnabled = Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["LogEnabled"]);
                if (logOpration == LogOpration.Fobid || (logOpration == LogOpration.Default && !logEnabled))
                {
                    return;
                }
                else if (logOpration == LogOpration.Start || (logOpration == LogOpration.Default && logEnabled))
                {
                    SysLog sysLog = new SysLog();
                    sysLog.Id = Result.GetNewId();
                    sysLog.CreateTime = DateTime.Now;
                    sysLog.Ip = GetIP();
                    sysLog.Message = message;
                    sysLog.CreatePerson = AccountModel.GetCurrentPerson();
                    sysLog.MenuId = logType;//哪个模块生成的日志

                    ISysLogBLL sysLogRepository = new SysLogBLL();

                    ValidationErrors validationErrors = new ValidationErrors();
                    sysLogRepository.Create(ref validationErrors, sysLog);
                    return;

                }
            }
            catch (Exception ep)
            {
                try
                {
                    string path = @"mylog.txt";
                    string txtPath = System.Web.HttpContext.Current.Server.MapPath(path);//获取绝对路径
                    using (StreamWriter sw = new StreamWriter(txtPath, true, Encoding.Default))
                    {
                        sw.WriteLine((ep.Message + "|" + message + "|" + GetIP() + DateTime.Now.ToString()).ToString());
                        sw.Close();
                    }
                    return;
                }
                catch { return; }
            }

        }
 public bool Create(ref ValidationErrors errors, SysModuleModel model)
 {
     try
     {
         SysModule entity = m_Rep.GetById(model.Id);
         if (entity != null)
         {
             errors.Add(Suggestion.PrimaryRepeat);
             return false;
         }
         entity = new SysModule();
         entity.Id = model.Id;
         entity.Name = model.Name;
         entity.EnglishName = model.EnglishName;
         entity.ParentId = model.ParentId;
         entity.Url = model.Url;
         entity.Iconic = model.Iconic;
         entity.Sort = model.Sort;
         entity.Remark = model.Remark;
         entity.Enable = model.Enable;
         entity.CreatePerson = model.CreatePerson;
         entity.CreateTime = model.CreateTime;
         entity.IsLast = model.IsLast;
         if (m_Rep.Create(entity) == 1)
         {
             //分配给角色
             dbContainer.P_Sys_InsertSysRight();
             return true;
         }
         else
         {
             errors.Add(Suggestion.InsertFail);
             return false;
         }
     }
     catch (Exception ex)
     {
         errors.Add(ex.Message);
         ExceptionHander.WriteException(ex);
         return false;
     }
 }
Beispiel #30
0
        public virtual void Modify(ref ValidationErrors errors, Apps.Models.SCV.SHIPPING.SHIPPING_CONTAINER_MODEL model, params string[] updateProperties)
        {
            Apps.Models.SHIPPING_CONTAINER entity = m_Rep.GetById(model.INTERNAL_CONTAINER_NUM);
            if (entity == null)
            {
                errors.Add(Resource.Disable);
                return;
            }
            if (updateProperties.Count() <= 0)
            {
                entity.INTERNAL_CONTAINER_NUM = model.INTERNAL_CONTAINER_NUM;
                entity.CONTAINER_ID           = model.CONTAINER_ID;
                entity.WAREHOUSE                  = model.WAREHOUSE;
                entity.CONTAINER_TYPE             = model.CONTAINER_TYPE;
                entity.CONTAINER_CLASS            = model.CONTAINER_CLASS;
                entity.STATUS                     = model.STATUS;
                entity.PARENT                     = model.PARENT;
                entity.WEIGHT                     = model.WEIGHT;
                entity.WEIGHT_UM                  = model.WEIGHT_UM;
                entity.VOLUME                     = model.VOLUME;
                entity.LENGTH                     = model.LENGTH;
                entity.WIDTH                      = model.WIDTH;
                entity.HEIGHT                     = model.HEIGHT;
                entity.DIMENSION_UM               = model.DIMENSION_UM;
                entity.VOLUME_UM                  = model.VOLUME_UM;
                entity.VALUE                      = model.VALUE;
                entity.INTERNAL_SHIPMENT_NUM      = model.INTERNAL_SHIPMENT_NUM;
                entity.INTERNAL_SHIPMENT_LINE_NUM = model.INTERNAL_SHIPMENT_LINE_NUM;
                entity.COMPANY                    = model.COMPANY;
                entity.ITEM                    = model.ITEM;
                entity.QUANTITY                = model.QUANTITY;
                entity.QUANTITY_UM             = model.QUANTITY_UM;
                entity.TRACKING_NUMBER         = model.TRACKING_NUMBER;
                entity.USER_DEF1               = model.USER_DEF1;
                entity.USER_DEF2               = model.USER_DEF2;
                entity.USER_DEF3               = model.USER_DEF3;
                entity.USER_DEF4               = model.USER_DEF4;
                entity.USER_DEF5               = model.USER_DEF5;
                entity.USER_DEF6               = model.USER_DEF6;
                entity.USER_DEF7               = model.USER_DEF7;
                entity.USER_DEF8               = model.USER_DEF8;
                entity.USER_STAMP              = model.USER_STAMP;
                entity.DATE_TIME_STAMP         = model.DATE_TIME_STAMP;
                entity.GROUP_POSITION          = model.GROUP_POSITION;
                entity.INTERNAL_WAVE_NUM       = model.INTERNAL_WAVE_NUM;
                entity.CONTAINER_COUNT_NUMBER  = model.CONTAINER_COUNT_NUMBER;
                entity.CONTAINER_COUNT_TOTAL   = model.CONTAINER_COUNT_TOTAL;
                entity.GROUP_NUM               = model.GROUP_NUM;
                entity.PARENT_CONTAINER_ID     = model.PARENT_CONTAINER_ID;
                entity.INTERNAL_SHIP_ALLOC_NUM = model.INTERNAL_SHIP_ALLOC_NUM;
                entity.TASK_CREATED            = model.TASK_CREATED;
                entity.ATTRIBUTE_NUM           = model.ATTRIBUTE_NUM;
                entity.ORIGINAL_PICK_LOC       = model.ORIGINAL_PICK_LOC;
                entity.ATTRIBUTE1              = model.ATTRIBUTE1;
                entity.ATTRIBUTE2              = model.ATTRIBUTE2;
                entity.ATTRIBUTE3              = model.ATTRIBUTE3;
                entity.ATTRIBUTE4              = model.ATTRIBUTE4;
                entity.ATTRIBUTE5              = model.ATTRIBUTE5;
                entity.ATTRIBUTE6              = model.ATTRIBUTE6;
                entity.ATTRIBUTE7              = model.ATTRIBUTE7;
                entity.ATTRIBUTE8              = model.ATTRIBUTE8;
                entity.PROCESS_STAMP           = model.PROCESS_STAMP;
                entity.PACKING_CLASS           = model.PACKING_CLASS;
                entity.SHIPMENT_ID             = model.SHIPMENT_ID;
                entity.TRANS_CONT_ID           = model.TRANS_CONT_ID;
                entity.OQC_BENCH               = model.OQC_BENCH;
                entity.OQCED                   = model.OQCED;
                entity.OQC_USER                = model.OQC_USER;
                entity.OQC_START_DATE_TIME     = model.OQC_START_DATE_TIME;
                entity.OQC_END_DATE_TIME       = model.OQC_END_DATE_TIME;
                entity.SYSTEM_CREATED          = model.SYSTEM_CREATED;
                entity.SCANNED_QTY             = model.SCANNED_QTY;
            }
            else
            {
                Type type  = typeof(Apps.Models.SCV.SHIPPING.SHIPPING_CONTAINER_MODEL);
                Type typeE = typeof(Apps.Models.SHIPPING_CONTAINER);
                foreach (var item in updateProperties)
                {
                    System.Reflection.PropertyInfo pi  = type.GetProperty(item);
                    System.Reflection.PropertyInfo piE = typeE.GetProperty(item);
                    piE.SetValue(entity, pi.GetValue(model), null);
                }
            }


            m_Rep.Modify(entity, updateProperties);
        }
Beispiel #31
0
        private async Task <bool> Validate()
        {
            var validationErrors = new ValidationErrors();
            await Task.Run(() =>
            {
                // Current Weight
                if (CurrentWeightValue == 0)
                {
                    validationErrors.Add(
                        string.Format(TextResources.Required_IsMandatory, TextResources.WeightLossGoal));
                }
                else if (CurrentWeightValue < App.Configuration.AppConfig.MINIMUM_WEIGHT_LOSE)
                {
                    validationErrors.Add(string.Format(TextResources.Validation_MustBeMoreThan,
                                                       TextResources.WeightLossGoal, App.Configuration.AppConfig.MINIMUM_WEIGHT_LOSE));
                }

                if (GoalAchieved)
                {
                    // Front Photo
                    if (ImageFront == null || ImageFront.Trim().Length == 0 ||
                        ImageFront == ImageDefault)
                    {
                        validationErrors.Add(string.Format(TextResources.Required_MustBeSelected,
                                                           TextResources.FrontPhoto));
                    }

                    // Side Photo
                    if (ImageSide == null || ImageSide.Trim().Length == 0 ||
                        ImageSide == ImageDefault)
                    {
                        validationErrors.Add(string.Format(TextResources.Required_MustBeSelected,
                                                           TextResources.SidePhoto));
                    }

                    //Gender
                    if (IsGenderRequired && !IsGenderSelected)
                    {
                        validationErrors.Add(string.Format(TextResources.Required_MustBeSelected,
                                                           TextResources.Gender));
                    }

                    // T-Shirt Size
                    if (TShirtSize == null || TShirtSize.Trim().Length == 0)
                    {
                        validationErrors.Add(string.Format(TextResources.Required_MustBeSelected,
                                                           TextResources.TShirtSize));
                    }

                    // Why you want to join
                    if (AboutYourJourney == null || AboutYourJourney.Trim().Length == 0)
                    {
                        validationErrors.Add(string.Format(TextResources.Required_IsMandatory,
                                                           TextResources.AboutYourJourney));
                    }
                }
            });

            if (validationErrors.Count() > 0)
            {
                if (validationErrors.Count() > 2)
                {
                    SetActivityResource(true, false, false, true, string.Empty, string.Empty,
                                        TextResources.SubmissionProblem + "\n" + TextResources.PleaseReviewAllInputsAreMandatory);
                }
                else
                {
                    SetActivityResource(true, false, false, true, string.Empty, string.Empty,
                                        TextResources.SubmissionProblem + "\n" + validationErrors.Show("\n"));
                }
            }

            return(validationErrors.Count() == 0);
        }
Beispiel #32
0
        public bool ImportExcelData(string oper, string filePath, ref ValidationErrors errors)
        {
            bool rtn = true;

            var targetFile = new FileInfo(filePath);

            if (!targetFile.Exists)
            {
                errors.Add("导入的数据文件不存在");
                return(false);
            }

            var excelFile = new ExcelQueryFactory(filePath);

            using (XLWorkbook wb = new XLWorkbook(filePath))
            {
                //第一个Sheet
                using (IXLWorksheet wws = wb.Worksheets.First())
                {
                    //对应列头
                    excelFile.AddMapping <WMS_Product_EntryModel>(x => x.ProductBillNum, "入库单号(业务)");
                    //excelFile.AddMapping<WMS_Product_EntryModel>(x => x.EntryBillNum, "入库单号(系统)");
                    excelFile.AddMapping <WMS_Product_EntryModel>(x => x.Department, "本货部门");
                    //excelFile.AddMapping<WMS_Product_EntryModel>(x => x.Partid, "物料");
                    excelFile.AddMapping <WMS_Product_EntryModel>(x => x.PartCode, "物料编码");
                    excelFile.AddMapping <WMS_Product_EntryModel>(x => x.ProductQty, "数量");
                    //excelFile.AddMapping<WMS_Product_EntryModel>(x => x.InvId, "库存");
                    excelFile.AddMapping <WMS_Product_EntryModel>(x => x.InvName, "库房");
                    //excelFile.AddMapping<WMS_Product_EntryModel>(x => x.SubInvId, "子库存");
                    //excelFile.AddMapping<WMS_Product_EntryModel>(x => x.Remark, "备注");
                    //excelFile.AddMapping<WMS_Product_EntryModel>(x => x.Attr1, "");
                    //excelFile.AddMapping<WMS_Product_EntryModel>(x => x.Attr2, "");
                    //excelFile.AddMapping<WMS_Product_EntryModel>(x => x.Attr3, "");
                    //excelFile.AddMapping<WMS_Product_EntryModel>(x => x.Attr4, "");
                    //excelFile.AddMapping<WMS_Product_EntryModel>(x => x.Attr5, "");
                    //excelFile.AddMapping<WMS_Product_EntryModel>(x => x.CreatePerson, "创建人");
                    //excelFile.AddMapping<WMS_Product_EntryModel>(x => x.CreateTime, "创建时间");
                    //excelFile.AddMapping<WMS_Product_EntryModel>(x => x.ModifyPerson, "修改人");
                    //excelFile.AddMapping<WMS_Product_EntryModel>(x => x.ModifyTime, "修改时间");

                    //SheetName,第一个Sheet
                    var excelContent = excelFile.Worksheet <WMS_Product_EntryModel>(0);

                    //开启事务
                    using (DBContainer db = new DBContainer())
                    {
                        var    tran           = db.Database.BeginTransaction(); //开启事务
                        int    rowIndex       = 0;
                        string productBillNum = null;

                        //检查数据正确性
                        foreach (var row in excelContent)
                        {
                            rowIndex += 1;
                            string errorMessage = String.Empty;
                            var    model        = new WMS_Product_EntryModel();
                            model.Id             = row.Id;
                            model.ProductBillNum = row.ProductBillNum;
                            productBillNum       = row.ProductBillNum;
                            model.EntryBillNum   = row.EntryBillNum;
                            model.Department     = row.Department;
                            //model.Partid = row.Partid;
                            model.PartCode   = row.PartCode;
                            model.ProductQty = row.ProductQty;
                            //model.InvId = row.InvId;
                            model.InvName = row.InvName;
                            //model.SubInvId = row.SubInvId;
                            model.Remark       = row.Remark;
                            model.Attr1        = row.Attr1;
                            model.Attr2        = row.Attr2;
                            model.Attr3        = row.Attr3;
                            model.Attr4        = row.Attr4;
                            model.Attr5        = row.Attr5;
                            model.CreatePerson = row.CreatePerson;
                            model.CreateTime   = row.CreateTime;
                            model.ModifyPerson = row.ModifyPerson;
                            model.ModifyTime   = row.ModifyTime;

                            if (!String.IsNullOrEmpty(errorMessage))
                            {
                                rtn = false;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                                continue;
                            }

                            //执行额外的数据校验
                            try
                            {
                                AdditionalCheckExcelData(db, ref model);
                            }
                            catch (Exception ex)
                            {
                                rtn          = false;
                                errorMessage = ex.Message;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                                continue;
                            }

                            //写入数据库
                            WMS_Product_Entry entity = new WMS_Product_Entry();
                            entity.Id             = model.Id;
                            entity.ProductBillNum = model.ProductBillNum;
                            entity.EntryBillNum   = model.EntryBillNum;
                            //entity.EntryBillNum = "ZZJ" + DateTime.Now.ToString("yyyyMMddHHmmssff");
                            entity.Department = model.Department;
                            entity.Partid     = model.Partid;
                            entity.ProductQty = model.ProductQty;
                            entity.InvId      = model.InvId;
                            //entity.SubInvId = model.SubInvId;
                            entity.Remark = model.Remark;
                            //entity.Attr1 = model.Attr1;
                            //entity.Attr2 = model.Attr2;
                            //entity.Attr3 = model.Attr3;
                            //entity.Attr4 = model.Attr4;
                            //entity.Attr5 = model.Attr5;
                            entity.CreatePerson = oper;
                            entity.CreateTime   = DateTime.Now;
                            entity.ModifyPerson = oper;
                            entity.ModifyTime   = DateTime.Now;

                            db.WMS_Product_Entry.Add(entity);
                            try
                            {
                                db.SaveChanges();
                            }
                            catch (Exception ex)
                            {
                                rtn = false;
                                //将当前报错的entity状态改为分离,类似EF的回滚(忽略之前的Add操作)
                                db.Entry(entity).State = System.Data.Entity.EntityState.Detached;
                                errorMessage           = ex.InnerException.InnerException.Message;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                            }
                        }

                        if (rtn)
                        {
                            //全部保存成功后,调用存储过程“P_WMS_ProcessProductEntry”入库。
                            ObjectParameter returnValue = new ObjectParameter("ReturnValue", typeof(string));
                            db.P_WMS_ProcessProductEntry(oper, productBillNum, returnValue);
                            if (returnValue.Value == DBNull.Value)
                            {
                                tran.Commit();
                            }
                            else
                            {
                                tran.Rollback();
                                errors.Add((string)returnValue.Value);
                            }

                            //tran.Commit();  //必须调用Commit(),不然数据不会保存
                        }
                        else
                        {
                            tran.Rollback();    //出错就回滚
                        }
                    }
                }
                wb.Save();
            }

            return(rtn);
        }
Beispiel #33
0
        /// <summary>
        /// 校验Excel数据,这个方法一般用于重写校验逻辑
        /// </summary>
        public virtual bool CheckImportData(string fileName, List <SysModuleOperateModel> list, ref ValidationErrors errors)
        {
            var targetFile = new FileInfo(fileName);

            if (!targetFile.Exists)
            {
                errors.Add("导入的数据文件不存在");
                return(false);
            }

            var excelFile = new ExcelQueryFactory(fileName);

            //对应列头
            excelFile.AddMapping <SysModuleOperateModel>(x => x.Name, "Name");
            excelFile.AddMapping <SysModuleOperateModel>(x => x.KeyCode, "KeyCode");
            excelFile.AddMapping <SysModuleOperateModel>(x => x.ModuleId, "ModuleId");
            excelFile.AddMapping <SysModuleOperateModel>(x => x.IsValid, "IsValid");
            excelFile.AddMapping <SysModuleOperateModel>(x => x.Sort, "Sort");

            //SheetName
            var excelContent = excelFile.Worksheet <SysModuleOperateModel>(0);
            int rowIndex     = 1;

            //检查数据正确性
            foreach (var row in excelContent)
            {
                var errorMessage = new StringBuilder();
                var entity       = new SysModuleOperateModel();
                entity.Id       = row.Id;
                entity.Name     = row.Name;
                entity.KeyCode  = row.KeyCode;
                entity.ModuleId = row.ModuleId;
                entity.IsValid  = row.IsValid;
                entity.Sort     = row.Sort;

                //=============================================================================
                if (errorMessage.Length > 0)
                {
                    errors.Add(string.Format(
                                   "第 {0} 列发现错误:{1}{2}",
                                   rowIndex,
                                   errorMessage,
                                   "<br/>"));
                }
                list.Add(entity);
                rowIndex += 1;
            }
            if (errors.Count > 0)
            {
                return(false);
            }
            return(true);
        }
        private void DiscoverInternal(JSchema schema, string latestPath)
        {
            if (schema.Reference != null)
            {
                return;
            }

            if (_knownSchemas.Any(s => s.Schema == schema))
            {
                return;
            }

            Uri    newScopeId;
            string scopePath     = latestPath;
            Uri    schemaKnownId = GetSchemaIdAndNewScopeId(schema, ref scopePath, out newScopeId);

            // check whether a schema with the resolved id is already known
            // this will be hit when a schema contains duplicate ids or references a schema with a duplicate id
            bool existingSchema = _knownSchemas.Any(s => UriComparer.Instance.Equals(s.Id, schemaKnownId));

#if DEBUG
            if (_knownSchemas.Any(s => s.Schema == schema))
            {
                throw new InvalidOperationException("Schema with id '{0}' already a known schema.".FormatWith(CultureInfo.InvariantCulture, schemaKnownId));
            }
#endif

            // add schema to known schemas whether duplicate or not to avoid multiple errors
            // the first schema with a duplicate id will be used
            _knownSchemas.Add(new KnownSchema(schemaKnownId, schema, _state));

            if (existingSchema)
            {
                if (ValidationErrors != null)
                {
                    ValidationError error = ValidationError.CreateValidationError($"Duplicate schema id '{schemaKnownId.OriginalString}' encountered.", ErrorType.Id, schema, null, schemaKnownId, null, schema, schema.Path);
                    ValidationErrors.Add(error);
                }
            }

            _pathStack.Push(new SchemaPath(newScopeId, scopePath));

            // discover should happen in the same order as writer except extension data (e.g. definitions)
            if (schema._extensionData != null)
            {
                foreach (KeyValuePair <string, JToken> valuePair in schema._extensionData)
                {
                    DiscoverTokenSchemas(EscapePath(valuePair.Key), valuePair.Value);
                }
            }

            DiscoverSchema(Constants.PropertyNames.AdditionalProperties, schema.AdditionalProperties);
            DiscoverSchema(Constants.PropertyNames.AdditionalItems, schema.AdditionalItems);
            DiscoverDictionarySchemas(Constants.PropertyNames.Properties, schema._properties);
            DiscoverDictionarySchemas(Constants.PropertyNames.PatternProperties, schema._patternProperties);
            DiscoverDictionarySchemas(Constants.PropertyNames.Dependencies, schema._dependencies);
            DiscoverArraySchemas(Constants.PropertyNames.Items, schema._items);
            DiscoverArraySchemas(Constants.PropertyNames.AllOf, schema._allOf);
            DiscoverArraySchemas(Constants.PropertyNames.AnyOf, schema._anyOf);
            DiscoverArraySchemas(Constants.PropertyNames.OneOf, schema._oneOf);
            DiscoverSchema(Constants.PropertyNames.Not, schema.Not);

            _pathStack.Pop();
        }
        /// <summary>
        /// 校验Excel数据,这个方法一般用于重写校验逻辑
        /// </summary>
        public virtual bool CheckImportData(string fileName, List <Flow_FormContentModel> list, ref ValidationErrors errors)
        {
            var targetFile = new FileInfo(fileName);

            if (!targetFile.Exists)
            {
                errors.Add("导入的数据文件不存在");
                return(false);
            }

            var excelFile = new ExcelQueryFactory(fileName);

            //对应列头
            excelFile.AddMapping <Flow_FormContentModel>(x => x.Title, "标题");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.UserId, "发起用户");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.FormId, "对应表单");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.FormLevel, "公文级别");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.CreateTime, "创建时间");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrA, "字段A的值");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrB, "AttrB");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrC, "AttrC");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrD, "AttrD");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrE, "AttrE");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrF, "AttrF");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrG, "AttrG");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrH, "AttrH");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrI, "AttrI");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrJ, "AttrJ");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrK, "AttrK");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrL, "AttrL");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrM, "AttrM");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrN, "AttrN");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrO, "AttrO");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrP, "AttrP");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrQ, "AttrQ");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrR, "AttrR");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrS, "AttrS");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrT, "AttrT");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrU, "AttrU");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrV, "AttrV");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrW, "AttrW");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrX, "AttrX");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrY, "AttrY");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.AttrZ, "字段Z的值");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.CustomMember, "指定审核人");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.TimeOut, "截止时间");
            excelFile.AddMapping <Flow_FormContentModel>(x => x.IsDelete, "是否已删除");

            //SheetName
            var excelContent = excelFile.Worksheet <Flow_FormContentModel>(0);
            int rowIndex     = 1;

            //检查数据正确性
            foreach (var row in excelContent)
            {
                var errorMessage = new StringBuilder();
                var entity       = new Flow_FormContentModel();
                entity.Id           = row.Id;
                entity.Title        = row.Title;
                entity.UserId       = row.UserId;
                entity.FormId       = row.FormId;
                entity.FormLevel    = row.FormLevel;
                entity.CreateTime   = row.CreateTime;
                entity.AttrA        = row.AttrA;
                entity.AttrB        = row.AttrB;
                entity.AttrC        = row.AttrC;
                entity.AttrD        = row.AttrD;
                entity.AttrE        = row.AttrE;
                entity.AttrF        = row.AttrF;
                entity.AttrG        = row.AttrG;
                entity.AttrH        = row.AttrH;
                entity.AttrI        = row.AttrI;
                entity.AttrJ        = row.AttrJ;
                entity.AttrK        = row.AttrK;
                entity.AttrL        = row.AttrL;
                entity.AttrM        = row.AttrM;
                entity.AttrN        = row.AttrN;
                entity.AttrO        = row.AttrO;
                entity.AttrP        = row.AttrP;
                entity.AttrQ        = row.AttrQ;
                entity.AttrR        = row.AttrR;
                entity.AttrS        = row.AttrS;
                entity.AttrT        = row.AttrT;
                entity.AttrU        = row.AttrU;
                entity.AttrV        = row.AttrV;
                entity.AttrW        = row.AttrW;
                entity.AttrX        = row.AttrX;
                entity.AttrY        = row.AttrY;
                entity.AttrZ        = row.AttrZ;
                entity.CustomMember = row.CustomMember;
                entity.TimeOut      = row.TimeOut;
                entity.IsDelete     = row.IsDelete;

                //=============================================================================
                if (errorMessage.Length > 0)
                {
                    errors.Add(string.Format(
                                   "第 {0} 列发现错误:{1}{2}",
                                   rowIndex,
                                   errorMessage,
                                   "<br/>"));
                }
                list.Add(entity);
                rowIndex += 1;
            }
            if (errors.Count > 0)
            {
                return(false);
            }
            return(true);
        }
        public virtual void Modify(ref ValidationErrors errors, Apps.Models.SCV.AR.AR_UPLOAD_RECEIPT_HEADER_MODEL model, params string[] updateProperties)
        {
            Apps.Models.AR_UPLOAD_RECEIPT_HEADER entity = m_Rep.GetById(model.INTERFACE_RECORD_ID);
            if (entity == null)
            {
                errors.Add(Resource.Disable);
                return;
            }
            if (updateProperties.Count() <= 0)
            {
                entity.INTERFACE_RECORD_ID   = model.INTERFACE_RECORD_ID;
                entity.INTERFACE_ACTION_CODE = model.INTERFACE_ACTION_CODE;
                entity.INTERFACE_CONDITION   = model.INTERFACE_CONDITION;
                entity.PROCESS_STAMP         = model.PROCESS_STAMP;
                entity.WAREHOUSE             = model.WAREHOUSE;
                entity.COMPANY                 = model.COMPANY;
                entity.RECEIPT_ID              = model.RECEIPT_ID;
                entity.RECEIPT_TYPE            = model.RECEIPT_TYPE;
                entity.PRIORITY                = model.PRIORITY;
                entity.LEADING_STS             = model.LEADING_STS;
                entity.TRAILING_STS            = model.TRAILING_STS;
                entity.ERP_ORDER_ID            = model.ERP_ORDER_ID;
                entity.SHIP_FROM               = model.SHIP_FROM;
                entity.SHIP_FROM_ADDRESS1      = model.SHIP_FROM_ADDRESS1;
                entity.SHIP_FROM_ADDRESS2      = model.SHIP_FROM_ADDRESS2;
                entity.SHIP_FROM_CITY          = model.SHIP_FROM_CITY;
                entity.SHIP_FROM_STATE         = model.SHIP_FROM_STATE;
                entity.SHIP_FROM_COUNTRY       = model.SHIP_FROM_COUNTRY;
                entity.SHIP_FROM_POSTAL_CODE   = model.SHIP_FROM_POSTAL_CODE;
                entity.SHIP_FROM_NAME          = model.SHIP_FROM_NAME;
                entity.SHIP_FROM_ATTENTION_TO  = model.SHIP_FROM_ATTENTION_TO;
                entity.SHIP_FROM_EMAIL_ADDRESS = model.SHIP_FROM_EMAIL_ADDRESS;
                entity.SHIP_FROM_PHONE_NUM     = model.SHIP_FROM_PHONE_NUM;
                entity.SHIP_FROM_FAX_NUM       = model.SHIP_FROM_FAX_NUM;
                entity.SCHEDULED_ARRIVE_DATE   = model.SCHEDULED_ARRIVE_DATE;
                entity.ACTUAL_ARRIVE_DATE      = model.ACTUAL_ARRIVE_DATE;
                entity.USER_STAMP              = model.USER_STAMP;
                entity.DATE_TIME_STAMP         = model.DATE_TIME_STAMP;
                entity.RECV_DOCK               = model.RECV_DOCK;
                entity.CLOSE_DATE              = model.CLOSE_DATE;
                entity.CREATE_DATE             = model.CREATE_DATE;
                entity.START_CHECKIN_DATE      = model.START_CHECKIN_DATE;
                entity.END_CHECKIN_DATE        = model.END_CHECKIN_DATE;
                entity.USER_DEF1               = model.USER_DEF1;
                entity.USER_DEF2               = model.USER_DEF2;
                entity.USER_DEF3               = model.USER_DEF3;
                entity.USER_DEF4               = model.USER_DEF4;
                entity.USER_DEF5               = model.USER_DEF5;
                entity.USER_DEF6               = model.USER_DEF6;
                entity.USER_DEF7               = model.USER_DEF7;
                entity.USER_DEF8               = model.USER_DEF8;
                entity.TOTAL_QTY               = model.TOTAL_QTY;
                entity.TOTAL_LINES             = model.TOTAL_LINES;
            }
            else
            {
                Type type  = typeof(Apps.Models.SCV.AR.AR_UPLOAD_RECEIPT_HEADER_MODEL);
                Type typeE = typeof(Apps.Models.AR_UPLOAD_RECEIPT_HEADER);
                foreach (var item in updateProperties)
                {
                    System.Reflection.PropertyInfo pi  = type.GetProperty(item);
                    System.Reflection.PropertyInfo piE = typeE.GetProperty(item);
                    piE.SetValue(entity, pi.GetValue(model), null);
                }
            }


            m_Rep.Modify(entity, updateProperties);
        }
Beispiel #37
0
        /// <summary>
        /// Gets the errors.
        /// </summary>
        /// <returns>The errors from the page as a <see cref="List{TEntity}"/> of <see cref="string"/> entities.</returns>
        public List <string> GetErrors()
        {
            var errors = ValidationErrors.Select(err => err.Text).ToList();

            return(errors);
        }
Beispiel #38
0
        public virtual void Modify(ref ValidationErrors errors, Apps.Models.SCV.AR.AR_RECEIPT_DETAIL_MODEL model, params string[] updateProperties)
        {
            Apps.Models.AR_RECEIPT_DETAIL entity = m_Rep.GetById(model.INTERNAL_RECEIPT_LINE_NUM);
            if (entity == null)
            {
                errors.Add(Resource.Disable);
                return;
            }
            if (updateProperties.Count() <= 0)
            {
                entity.INTERNAL_RECEIPT_LINE_NUM = model.INTERNAL_RECEIPT_LINE_NUM;
                entity.INTERNAL_RECEIPT_NUM      = model.INTERNAL_RECEIPT_NUM;
                entity.RECEIPT_ID         = model.RECEIPT_ID;
                entity.WAREHOUSE          = model.WAREHOUSE;
                entity.COMPANY            = model.COMPANY;
                entity.ITEM               = model.ITEM;
                entity.ITEM_DESC          = model.ITEM_DESC;
                entity.ITEM_CLASS         = model.ITEM_CLASS;
                entity.ATTRIBUTE_TRACK    = model.ATTRIBUTE_TRACK;
                entity.ATTRIBUTE_NUM      = model.ATTRIBUTE_NUM;
                entity.ATTRIBUTE1         = model.ATTRIBUTE1;
                entity.ATTRIBUTE2         = model.ATTRIBUTE2;
                entity.ATTRIBUTE3         = model.ATTRIBUTE3;
                entity.ATTRIBUTE4         = model.ATTRIBUTE4;
                entity.ATTRIBUTE5         = model.ATTRIBUTE5;
                entity.ATTRIBUTE6         = model.ATTRIBUTE6;
                entity.ATTRIBUTE7         = model.ATTRIBUTE7;
                entity.ATTRIBUTE8         = model.ATTRIBUTE8;
                entity.TOTAL_QTY          = model.TOTAL_QTY;
                entity.OPEN_QTY           = model.OPEN_QTY;
                entity.QUANTITY_UM        = model.QUANTITY_UM;
                entity.ERP_ORDER_ID       = model.ERP_ORDER_ID;
                entity.ERP_ORDER_LINE_NUM = model.ERP_ORDER_LINE_NUM;
                entity.LOCATING_RULE      = model.LOCATING_RULE;
                entity.USER_STAMP         = model.USER_STAMP;
                entity.DATE_TIME_STAMP    = model.DATE_TIME_STAMP;
                entity.INVENTORY_STS      = model.INVENTORY_STS;
                entity.USER_DEF1          = model.USER_DEF1;
                entity.USER_DEF2          = model.USER_DEF2;
                entity.USER_DEF3          = model.USER_DEF3;
                entity.USER_DEF4          = model.USER_DEF4;
                entity.USER_DEF5          = model.USER_DEF5;
                entity.USER_DEF6          = model.USER_DEF6;
                entity.USER_DEF7          = model.USER_DEF7;
                entity.USER_DEF8          = model.USER_DEF8;
                entity.ITEM_LIST_PRICE    = model.ITEM_LIST_PRICE;
                entity.ITEM_NET_PRICE     = model.ITEM_NET_PRICE;
                entity.ITEM_CATEGORY01    = model.ITEM_CATEGORY01;
                entity.ITEM_CATEGORY02    = model.ITEM_CATEGORY02;
                entity.ITEM_CATEGORY03    = model.ITEM_CATEGORY03;
                entity.ITEM_CATEGORY04    = model.ITEM_CATEGORY04;
                entity.ITEM_CATEGORY05    = model.ITEM_CATEGORY05;
                entity.ITEM_CATEGORY06    = model.ITEM_CATEGORY06;
                entity.ITEM_CATEGORY07    = model.ITEM_CATEGORY07;
                entity.ITEM_CATEGORY08    = model.ITEM_CATEGORY08;
            }
            else
            {
                Type type  = typeof(Apps.Models.SCV.AR.AR_RECEIPT_DETAIL_MODEL);
                Type typeE = typeof(Apps.Models.AR_RECEIPT_DETAIL);
                foreach (var item in updateProperties)
                {
                    System.Reflection.PropertyInfo pi  = type.GetProperty(item);
                    System.Reflection.PropertyInfo piE = typeE.GetProperty(item);
                    piE.SetValue(entity, pi.GetValue(model), null);
                }
            }


            m_Rep.Modify(entity, updateProperties);
        }
        public override object Clone()
        {
            var result = base.Clone() as ShoppingCart;

            result.HandlingTotal        = HandlingTotal?.Clone() as Money;
            result.HandlingTotalWithTax = HandlingTotalWithTax?.Clone() as Money;
            result.DiscountAmount       = DiscountAmount?.Clone() as Money;
            result.Total                = Total?.Clone() as Money;
            result.SubTotal             = SubTotal?.Clone() as Money;
            result.SubTotalWithTax      = SubTotalWithTax?.Clone() as Money;
            result.ShippingPrice        = ShippingPrice?.Clone() as Money;
            result.ShippingPriceWithTax = ShippingPriceWithTax?.Clone() as Money;
            result.ShippingTotal        = ShippingTotal?.Clone() as Money;
            result.ShippingTotalWithTax = ShippingTotalWithTax?.Clone() as Money;
            result.PaymentPrice         = PaymentPrice?.Clone() as Money;
            result.PaymentPriceWithTax  = PaymentPriceWithTax?.Clone() as Money;
            result.PaymentTotal         = PaymentTotal?.Clone() as Money;
            result.PaymentTotalWithTax  = PaymentTotalWithTax?.Clone() as Money;
            result.HandlingTotal        = HandlingTotal?.Clone() as Money;
            result.HandlingTotalWithTax = HandlingTotalWithTax?.Clone() as Money;
            result.DiscountTotal        = DiscountTotal?.Clone() as Money;
            result.DiscountTotalWithTax = DiscountTotalWithTax?.Clone() as Money;
            result.TaxTotal             = TaxTotal?.Clone() as Money;

            if (Discounts != null)
            {
                result.Discounts = new List <Discount>(Discounts.Select(x => x.Clone() as Discount));
            }
            if (TaxDetails != null)
            {
                result.TaxDetails = new List <TaxDetail>(TaxDetails.Select(x => x.Clone() as TaxDetail));
            }
            if (DynamicProperties != null)
            {
                result.DynamicProperties = new List <DynamicProperty>(DynamicProperties.Select(x => x.Clone() as DynamicProperty));
            }
            if (ValidationErrors != null)
            {
                result.ValidationErrors = new List <ValidationError>(ValidationErrors.Select(x => x.Clone() as ValidationError));
            }
            if (Addresses != null)
            {
                result.Addresses = new List <Address>(Addresses.Select(x => x.Clone() as Address));
            }
            if (Items != null)
            {
                result.Items = new List <LineItem>(Items.Select(x => x.Clone() as LineItem));
            }
            if (Payments != null)
            {
                result.Payments = new List <Payment>(Payments.Select(x => x.Clone() as Payment));
            }
            if (Shipments != null)
            {
                result.Shipments = new List <Shipment>(Shipments.Select(x => x.Clone() as Shipment));
            }
            if (Coupons != null)
            {
                result.Coupons = new List <Coupon>(Coupons.Select(x => x.Clone() as Coupon));
            }
            if (AvailablePaymentMethods != null)
            {
                result.AvailablePaymentMethods = new List <PaymentMethod>(AvailablePaymentMethods.Select(x => x.Clone() as PaymentMethod));
            }

            return(result);
        }
Beispiel #40
0
        public bool ImportExcelData(string oper, string filePath, ref ValidationErrors errors)
        {
            bool rtn = true;

            var targetFile = new FileInfo(filePath);

            if (!targetFile.Exists)
            {
                errors.Add("导入的数据文件不存在");
                return(false);
            }

            var excelFile = new ExcelQueryFactory(filePath);

            using (XLWorkbook wb = new XLWorkbook(filePath))
            {
                //第一个Sheet
                using (IXLWorksheet wws = wb.Worksheets.First())
                {
                    //对应列头
                    excelFile.AddMapping <WMS_POModel>(x => x.PO, "采购订单(必输)");
                    excelFile.AddMapping <WMS_POModel>(x => x.PODate, "采购日期(必输格式:YYYY-MM-DD)");
                    excelFile.AddMapping <WMS_POModel>(x => x.SupplierShortName, "供应商简称(必输)");
                    excelFile.AddMapping <WMS_POModel>(x => x.PartCode, "物料编码(必输)");
                    excelFile.AddMapping <WMS_POModel>(x => x.QTY, "数量(必输)");
                    excelFile.AddMapping <WMS_POModel>(x => x.PlanDate, "计划到货日期");
                    excelFile.AddMapping <WMS_POModel>(x => x.POType, "采购订单类型");
                    //excelFile.AddMapping<WMS_POModel>(x => x.Status, "状态");
                    excelFile.AddMapping <WMS_POModel>(x => x.Remark, "说明");
                    //excelFile.AddMapping<WMS_POModel>(x => x.Attr1, "");
                    //excelFile.AddMapping<WMS_POModel>(x => x.Attr2, "");
                    //excelFile.AddMapping<WMS_POModel>(x => x.Attr3, "");
                    //excelFile.AddMapping<WMS_POModel>(x => x.Attr4, "");
                    //excelFile.AddMapping<WMS_POModel>(x => x.Attr5, "");
                    //excelFile.AddMapping<WMS_POModel>(x => x.CreatePerson, "创建人");
                    //excelFile.AddMapping<WMS_POModel>(x => x.CreateTime, "创建时间");
                    //excelFile.AddMapping<WMS_POModel>(x => x.ModifyPerson, "修改人");
                    //excelFile.AddMapping<WMS_POModel>(x => x.ModifyTime, "修改时间");

                    //SheetName,第一个Sheet
                    var excelContent = excelFile.Worksheet <WMS_POModel>(0);

                    //开启事务
                    using (DBContainer db = new DBContainer())
                    {
                        var tran     = db.Database.BeginTransaction(); //开启事务
                        int rowIndex = 0;

                        //检查数据正确性
                        foreach (var row in excelContent)
                        {
                            rowIndex += 1;
                            string errorMessage = String.Empty;
                            var    model        = new WMS_POModel();
                            model.Id                = row.Id;
                            model.PO                = row.PO;
                            model.PODate            = row.PODate;
                            model.SupplierShortName = row.SupplierShortName;
                            model.PartCode          = row.PartCode;
                            model.QTY               = row.QTY;
                            model.PlanDate          = row.PlanDate;
                            model.POType            = row.POType;
                            model.Status            = "有效";
                            model.Remark            = row.Remark;
                            //model.Attr1 = row.Attr1;
                            //model.Attr2 = row.Attr2;
                            //model.Attr3 = row.Attr3;
                            //model.Attr4 = row.Attr4;
                            //model.Attr5 = row.Attr5;
                            //model.CreatePerson = row.CreatePerson;
                            //model.CreateTime = row.CreateTime;
                            //model.ModifyPerson = row.ModifyPerson;
                            //model.ModifyTime = row.ModifyTime;

                            if (!String.IsNullOrEmpty(errorMessage))
                            {
                                rtn = false;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                                continue;
                            }

                            //执行额外的数据校验
                            try
                            {
                                AdditionalCheckExcelData(db, ref model);
                            }
                            catch (Exception ex)
                            {
                                rtn          = false;
                                errorMessage = ex.Message;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                                continue;
                            }

                            //写入数据库
                            WMS_PO entity = new WMS_PO();
                            entity.Id           = model.Id;
                            entity.PO           = model.PO;
                            entity.PODate       = model.PODate;
                            entity.SupplierId   = model.SupplierId;
                            entity.PartId       = model.PartId;
                            entity.QTY          = model.QTY;
                            entity.PlanDate     = model.PlanDate;
                            entity.POType       = model.POType;
                            entity.Status       = "有效";
                            entity.Remark       = model.Remark;
                            entity.Attr1        = model.Attr1;
                            entity.Attr2        = model.Attr2;
                            entity.Attr3        = model.Attr3;
                            entity.Attr4        = model.Attr4;
                            entity.Attr5        = model.Attr5;
                            entity.CreatePerson = oper;
                            entity.CreateTime   = DateTime.Now;
                            entity.ModifyPerson = oper;
                            entity.ModifyTime   = DateTime.Now;

                            db.WMS_PO.Add(entity);
                            try
                            {
                                db.SaveChanges();
                            }
                            catch (Exception ex)
                            {
                                rtn = false;
                                //将当前报错的entity状态改为分离,类似EF的回滚(忽略之前的Add操作)
                                db.Entry(entity).State = System.Data.Entity.EntityState.Detached;
                                errorMessage           = ex.InnerException.InnerException.Message;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                            }
                        }

                        if (rtn)
                        {
                            tran.Commit();  //必须调用Commit(),不然数据不会保存
                        }
                        else
                        {
                            tran.Rollback();    //出错就回滚
                        }
                    }
                }
                wb.Save();
            }

            return(rtn);
        }
Beispiel #41
0
        /// <summary>
        /// 编辑一个人员
        /// </summary>
        /// <param name="validationErrors">返回的错误信息</param>
        /// <param name="db">数据上下文</param>
        /// <param name="entity">一个人员</param>
        /// <returns>是否编辑成功</returns>
        public bool Edit(ref ValidationErrors validationErrors, SysEntities db, SysPerson entity)
        {  /*
            * 不操作 原有 现有
            * 增加   原没 现有
            * 删除   原有 现没
            */
            if (entity == null)
            {
                return(false);
            }
            int       count      = 1;
            SysPerson editEntity = repository.Edit(db, entity);

            List <string> addSysRoleId    = new List <string>();
            List <string> deleteSysRoleId = new List <string>();

            DataOfDiffrent.GetDiffrent(entity.SysRoleId.GetIdSort(), entity.SysRoleIdOld.GetIdSort(), ref addSysRoleId, ref deleteSysRoleId);
            if (addSysRoleId != null && addSysRoleId.Count() > 0)
            {
                foreach (var item in addSysRoleId)
                {
                    SysRole sys = new SysRole {
                        Id = item
                    };
                    db.SysRole.Attach(sys);
                    editEntity.SysRole.Add(sys);
                    count++;
                }
            }
            if (deleteSysRoleId != null && deleteSysRoleId.Count() > 0)
            {
                List <SysRole> listEntity = new List <SysRole>();
                foreach (var item in deleteSysRoleId)
                {
                    SysRole sys = new SysRole {
                        Id = item
                    };
                    listEntity.Add(sys);
                    db.SysRole.Attach(sys);
                }
                foreach (SysRole item in listEntity)
                {
                    editEntity.SysRole.Remove(item);//查询数据库
                    count++;
                }
            }

            List <string> addSysDocumentId    = new List <string>();
            List <string> deleteSysDocumentId = new List <string>();

            DataOfDiffrent.GetDiffrent(entity.SysDocumentId.GetIdSort(), entity.SysDocumentIdOld.GetIdSort(), ref addSysDocumentId, ref deleteSysDocumentId);
            if (addSysDocumentId != null && addSysDocumentId.Count() > 0)
            {
                foreach (var item in addSysDocumentId)
                {
                    SysDocument sys = new SysDocument {
                        Id = item
                    };
                    db.SysDocument.Attach(sys);
                    editEntity.SysDocument.Add(sys);
                    count++;
                }
            }
            if (deleteSysDocumentId != null && deleteSysDocumentId.Count() > 0)
            {
                List <SysDocument> listEntity = new List <SysDocument>();
                foreach (var item in deleteSysDocumentId)
                {
                    SysDocument sys = new SysDocument {
                        Id = item
                    };
                    listEntity.Add(sys);
                    db.SysDocument.Attach(sys);
                }
                foreach (SysDocument item in listEntity)
                {
                    editEntity.SysDocument.Remove(item);//查询数据库
                    count++;
                }
            }

            if (count == repository.Save(db))
            {
                return(true);
            }
            else
            {
                validationErrors.Add("编辑人员出错了");
            }
            return(false);
        }
Beispiel #42
0
        public virtual void Modify(ref ValidationErrors errors, Apps.Models.SCV.AR.AR_UPLOAD_SHIPMENT_HEADER_MODEL model, params string[] updateProperties)
        {
            Apps.Models.AR_UPLOAD_SHIPMENT_HEADER entity = m_Rep.GetById(model.INTERFACE_RECORD_ID);
            if (entity == null)
            {
                errors.Add(Resource.Disable);
                return;
            }
            if (updateProperties.Count() <= 0)
            {
                entity.INTERFACE_RECORD_ID   = model.INTERFACE_RECORD_ID;
                entity.INTERFACE_ACTION_CODE = model.INTERFACE_ACTION_CODE;
                entity.INTERFACE_CONDITION   = model.INTERFACE_CONDITION;
                entity.PROCESS_STAMP         = model.PROCESS_STAMP;
                entity.WAREHOUSE             = model.WAREHOUSE;
                entity.COMPANY                   = model.COMPANY;
                entity.INTERNAL_LOAD_NUM         = model.INTERNAL_LOAD_NUM;
                entity.SHIPMENT_ID               = model.SHIPMENT_ID;
                entity.ERP_ORDER                 = model.ERP_ORDER;
                entity.LEADING_STS               = model.LEADING_STS;
                entity.TRAILING_STS              = model.TRAILING_STS;
                entity.SHIPMENT_TYPE             = model.SHIPMENT_TYPE;
                entity.ROUTE                     = model.ROUTE;
                entity.SHIP_TO                   = model.SHIP_TO;
                entity.SHIP_TO_NAME              = model.SHIP_TO_NAME;
                entity.SHIP_TO_ADDRESS1          = model.SHIP_TO_ADDRESS1;
                entity.SHIP_TO_ADDRESS2          = model.SHIP_TO_ADDRESS2;
                entity.SHIP_TO_DISTRICT          = model.SHIP_TO_DISTRICT;
                entity.SHIP_TO_CITY              = model.SHIP_TO_CITY;
                entity.SHIP_TO_STATE             = model.SHIP_TO_STATE;
                entity.SHIP_TO_COUNTRY           = model.SHIP_TO_COUNTRY;
                entity.SHIP_TO_POSTAL_CODE       = model.SHIP_TO_POSTAL_CODE;
                entity.SHIP_TO_ATTENTION_TO      = model.SHIP_TO_ATTENTION_TO;
                entity.SHIP_TO_PHONE_NUM         = model.SHIP_TO_PHONE_NUM;
                entity.SHIP_TO_MOBILE            = model.SHIP_TO_MOBILE;
                entity.SHIP_TO_FAX_NUM           = model.SHIP_TO_FAX_NUM;
                entity.SHIP_TO_EMAIL_ADDRESS     = model.SHIP_TO_EMAIL_ADDRESS;
                entity.PRIORITY                  = model.PRIORITY;
                entity.USER_STAMP                = model.USER_STAMP;
                entity.DATE_TIME_STAMP           = model.DATE_TIME_STAMP;
                entity.REQUESTED_DELIVERY_DATE   = model.REQUESTED_DELIVERY_DATE;
                entity.REQUESTED_DELIVERY_TYPE   = model.REQUESTED_DELIVERY_TYPE;
                entity.SCHEDULED_SHIP_DATE       = model.SCHEDULED_SHIP_DATE;
                entity.ACTUAL_SHIP_DATE_TIME     = model.ACTUAL_SHIP_DATE_TIME;
                entity.ACTUAL_DELIVERY_DATE_TIME = model.ACTUAL_DELIVERY_DATE_TIME;
                entity.DELIVERY_NOTE             = model.DELIVERY_NOTE;
                entity.REJECTION_NOTE            = model.REJECTION_NOTE;
                entity.INTERNAL_WAVE_NUM         = model.INTERNAL_WAVE_NUM;
                entity.SHIP_DOCK                 = model.SHIP_DOCK;
                entity.ALLOCATE_COMPLETE         = model.ALLOCATE_COMPLETE;
                entity.TOTAL_WEIGHT              = model.TOTAL_WEIGHT;
                entity.WEIGHT_UM                 = model.WEIGHT_UM;
                entity.TOTAL_VOLUME              = model.TOTAL_VOLUME;
                entity.VOLUME_UM                 = model.VOLUME_UM;
                entity.TOTAL_LINES               = model.TOTAL_LINES;
                entity.TOTAL_CONTAINERS          = model.TOTAL_CONTAINERS;
                entity.CARRIER                   = model.CARRIER;
                entity.CARRIER_SERVICE           = model.CARRIER_SERVICE;
                entity.USER_DEF1                 = model.USER_DEF1;
                entity.USER_DEF2                 = model.USER_DEF2;
                entity.USER_DEF3                 = model.USER_DEF3;
                entity.USER_DEF4                 = model.USER_DEF4;
                entity.USER_DEF5                 = model.USER_DEF5;
                entity.USER_DEF6                 = model.USER_DEF6;
                entity.USER_DEF7                 = model.USER_DEF7;
                entity.USER_DEF8                 = model.USER_DEF8;
                entity.BACK_ORDER_NUM            = model.BACK_ORDER_NUM;
                entity.PROCESS_TYPE              = model.PROCESS_TYPE;
                entity.TOTAL_QTY                 = model.TOTAL_QTY;
                entity.LAST_WAVE_NUM             = model.LAST_WAVE_NUM;
                entity.GROUP_NUM                 = model.GROUP_NUM;
                entity.GROUP_INDEX               = model.GROUP_INDEX;
                entity.SIGN_VALUE                = model.SIGN_VALUE;
                entity.SHIPMENT_SUB_TYPE         = model.SHIPMENT_SUB_TYPE;
                entity.SHIPMENT_CATEGORY1        = model.SHIPMENT_CATEGORY1;
                entity.SHIPMENT_CATEGORY2        = model.SHIPMENT_CATEGORY2;
                entity.SHIPMENT_CATEGORY3        = model.SHIPMENT_CATEGORY3;
                entity.SHIPMENT_CATEGORY4        = model.SHIPMENT_CATEGORY4;
                entity.SHIPMENT_CATEGORY5        = model.SHIPMENT_CATEGORY5;
                entity.SHIPMENT_CATEGORY6        = model.SHIPMENT_CATEGORY6;
                entity.SHIPMENT_CATEGORY7        = model.SHIPMENT_CATEGORY7;
                entity.SHIPMENT_CATEGORY8        = model.SHIPMENT_CATEGORY8;
            }
            else
            {
                Type type  = typeof(Apps.Models.SCV.AR.AR_UPLOAD_SHIPMENT_HEADER_MODEL);
                Type typeE = typeof(Apps.Models.AR_UPLOAD_SHIPMENT_HEADER);
                foreach (var item in updateProperties)
                {
                    System.Reflection.PropertyInfo pi  = type.GetProperty(item);
                    System.Reflection.PropertyInfo piE = typeE.GetProperty(item);
                    piE.SetValue(entity, pi.GetValue(model), null);
                }
            }


            m_Rep.Modify(entity, updateProperties);
        }
Beispiel #43
0
        public bool ImportExcelData(string oper, string filePath, ref ValidationErrors errors)
        {
            bool rtn = true;

            var targetFile = new FileInfo(filePath);

            if (!targetFile.Exists)
            {
                errors.Add("导入的数据文件不存在");
                return(false);
            }

            var excelFile = new ExcelQueryFactory(filePath);



            using (XLWorkbook wb = new XLWorkbook(filePath))
            {
                int headId        = 0;
                var inventoryType = "抽检";
                //第一个Sheet
                using (IXLWorksheet wws = wb.Worksheets.First())
                {
                    //对应列头
                    excelFile.AddMapping <WMS_Inventory_DModel>(x => x.Inventory_HName, "盘点名称(必输)");
                    excelFile.AddMapping <WMS_Inventory_DModel>(x => x.PartCode, "物料编码(必输)");
                    excelFile.AddMapping <WMS_Inventory_DModel>(x => x.InventoryQty, "盘点数量(必输)");
                    excelFile.AddMapping <WMS_Inventory_DModel>(x => x.InvName, "库房名称");
                    //excelFile.AddMapping<WMS_Inventory_DModel>(x => x.SubInvId, "子库存");
                    excelFile.AddMapping <WMS_Inventory_DModel>(x => x.Lot, "批次号(必输)");
                    excelFile.AddMapping <WMS_Inventory_DModel>(x => x.Remark, "备注");
                    //excelFile.AddMapping<WMS_Inventory_DModel>(x => x.Attr1, "");
                    //excelFile.AddMapping<WMS_Inventory_DModel>(x => x.Attr2, "");
                    //excelFile.AddMapping<WMS_Inventory_DModel>(x => x.Attr3, "");
                    //excelFile.AddMapping<WMS_Inventory_DModel>(x => x.Attr4, "");
                    //excelFile.AddMapping<WMS_Inventory_DModel>(x => x.Attr5, "");
                    //excelFile.AddMapping<WMS_Inventory_DModel>(x => x.CreatePerson, "创建人");
                    //excelFile.AddMapping<WMS_Inventory_DModel>(x => x.CreateTime, "创建时间");
                    //excelFile.AddMapping<WMS_Inventory_DModel>(x => x.ModifyPerson, "修改人");
                    //excelFile.AddMapping<WMS_Inventory_DModel>(x => x.ModifyTime, "修改时间");

                    //SheetName,第一个Sheet
                    var excelContent = excelFile.Worksheet <WMS_Inventory_DModel>(0);

                    //开启事务
                    using (DBContainer db = new DBContainer())
                    {
                        var tran     = db.Database.BeginTransaction(); //开启事务
                        int rowIndex = 0;

                        //检查数据正确性
                        foreach (var row in excelContent)
                        {
                            rowIndex += 1;
                            string errorMessage = String.Empty;
                            var    model        = new WMS_Inventory_DModel();
                            model.Id = row.Id;
                            model.Inventory_HName = row.Inventory_HName;
                            model.PartCode        = row.PartCode;
                            model.InventoryQty    = row.InventoryQty;
                            model.InvName         = row.InvName;
                            model.Lot             = row.Lot;
                            //model.SubInvId = row.SubInvId;
                            model.Remark = row.Remark;
                            model.Attr1  = row.Inventory_HName;//用来标记是这次新增的记录,为了做验证检查
                            //model.Attr1 = row.Attr1;
                            //model.Attr2 = row.Attr2;
                            //model.Attr3 = row.Attr3;
                            //model.Attr4 = row.Attr4;
                            //model.Attr5 = row.Attr5;
                            //model.CreatePerson = row.CreatePerson;
                            //model.CreateTime = row.CreateTime;
                            //model.ModifyPerson = row.ModifyPerson;
                            //model.ModifyTime = row.ModifyTime;

                            if (!String.IsNullOrEmpty(errorMessage))
                            {
                                rtn = false;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                                continue;
                            }

                            //执行额外的数据校验
                            try
                            {
                                AdditionalCheckExcelData(db, ref model);
                            }
                            catch (Exception ex)
                            {
                                rtn          = false;
                                errorMessage = ex.Message;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                                continue;
                            }
                            headId        = model.HeadId;
                            inventoryType = model.InventoryType;
                            //写入数据库
                            Expression <Func <WMS_Inventory_D, bool> > exp = x => x.PartId == model.PartId && x.InvId == model.InvId && x.Lot == model.Lot && x.HeadId == model.HeadId;
                            WMS_Inventory_D entity;
                            entity = db.WMS_Inventory_D.FirstOrDefault(exp);
                            //WMS_Inventory_D entity1 = m_Rep.GetSingleWhere(model.Id);

                            if (entity != null)
                            {
                                entity.InventoryQty = model.InventoryQty;
                                entity.Attr1        = model.Attr1;
                            }
                            else
                            {
                                entity              = new WMS_Inventory_D();
                                entity.Id           = model.Id;
                                entity.HeadId       = model.HeadId;
                                entity.PartId       = model.PartId;
                                entity.SnapshootQty = 0;
                                entity.InventoryQty = model.InventoryQty;
                                entity.Lot          = model.Lot;
                                entity.InvId        = model.InvId;
                                entity.SubInvId     = model.SubInvId;
                                entity.Remark       = model.Remark;
                                entity.Attr1        = model.Attr1;
                                //entity.Attr2 = model.Attr2;
                                //entity.Attr3 = model.Attr3;
                                //entity.Attr4 = model.Attr4;
                                //entity.Attr5 = model.Attr5;
                                //entity.CreatePerson = model.CreatePerson;
                                //entity.CreateTime = model.CreateTime;
                                //entity.ModifyPerson = model.ModifyPerson;
                                //entity.ModifyTime = model.ModifyTime;
                                entity.CreatePerson = oper;
                                entity.CreateTime   = DateTime.Now;
                                entity.ModifyPerson = oper;
                                entity.ModifyTime   = DateTime.Now;
                                db.WMS_Inventory_D.Add(entity);
                            }
                            try
                            {
                                db.SaveChanges();
                            }
                            catch (Exception ex)
                            {
                                rtn = false;
                                //将当前报错的entity状态改为分离,类似EF的回滚(忽略之前的Add操作)
                                db.Entry(entity).State = System.Data.Entity.EntityState.Detached;
                                errorMessage           = ex.InnerException.InnerException.Message;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                            }
                        }

                        if (rtn)
                        {
                            //tran.Commit();
                            if (inventoryType == "抽检")
                            {
                                ObjectParameter returnValue = new ObjectParameter("ReturnValue", typeof(string));
                                db.Configuration.EnsureTransactionsForFunctionsAndCommands = false;

                                db.P_WMS_SpecialInventory(oper, headId, returnValue);

                                if (returnValue.Value == DBNull.Value)
                                {
                                    tran.Commit();
                                }
                                else
                                {
                                    tran.Rollback();
                                }
                                //db.P_WMS_SpecialInventory(oper, headId, returnValue);
                                //if (String.IsNullOrEmpty(SpecialInventory(ref errors, oper, headId)))
                                //if (String.IsNullOrEmpty(db.P_WMS_SpecialInventory(oper, headId, returnValue))
                                //{
                                //    tran.Commit();   //必须调用Commit(),不然数据不会保存
                                //}
                                //else
                                //{
                                //    tran.Rollback();   //出错就回滚
                                //}
                            }
                            else
                            {
                                tran.Commit();
                            }
                        }
                        else
                        {
                            tran.Rollback();    //出错就回滚
                        }
                    }
                }
                wb.Save();

                //if (inventoryType == "抽检")
                //{
                //    if (String.IsNullOrEmpty(SpecialInventory(ref errors, oper, headId)))
                //    {
                //        rtn = true;  //必须调用Commit(),不然数据不会保存
                //    }
                //    else
                //    {
                //        rtn = false; ;    //出错就回滚
                //    }

                //}

                return(rtn);
            }
        }
Beispiel #44
0
        public virtual void Create(ref ValidationErrors errors, Apps.Models.SCV.SHIPPING.SHIPPING_CONTAINER_MODEL model)
        {
            Apps.Models.SHIPPING_CONTAINER entity = m_Rep.GetById(model.INTERNAL_CONTAINER_NUM);
            if (entity != null)
            {
                errors.Add(Resource.PrimaryRepeat);
                return;
            }
            entity = new Apps.Models.SHIPPING_CONTAINER();
            entity.INTERNAL_CONTAINER_NUM = model.INTERNAL_CONTAINER_NUM;
            entity.CONTAINER_ID           = model.CONTAINER_ID;
            entity.WAREHOUSE                  = model.WAREHOUSE;
            entity.CONTAINER_TYPE             = model.CONTAINER_TYPE;
            entity.CONTAINER_CLASS            = model.CONTAINER_CLASS;
            entity.STATUS                     = model.STATUS;
            entity.PARENT                     = model.PARENT;
            entity.WEIGHT                     = model.WEIGHT;
            entity.WEIGHT_UM                  = model.WEIGHT_UM;
            entity.VOLUME                     = model.VOLUME;
            entity.LENGTH                     = model.LENGTH;
            entity.WIDTH                      = model.WIDTH;
            entity.HEIGHT                     = model.HEIGHT;
            entity.DIMENSION_UM               = model.DIMENSION_UM;
            entity.VOLUME_UM                  = model.VOLUME_UM;
            entity.VALUE                      = model.VALUE;
            entity.INTERNAL_SHIPMENT_NUM      = model.INTERNAL_SHIPMENT_NUM;
            entity.INTERNAL_SHIPMENT_LINE_NUM = model.INTERNAL_SHIPMENT_LINE_NUM;
            entity.COMPANY                    = model.COMPANY;
            entity.ITEM                    = model.ITEM;
            entity.QUANTITY                = model.QUANTITY;
            entity.QUANTITY_UM             = model.QUANTITY_UM;
            entity.TRACKING_NUMBER         = model.TRACKING_NUMBER;
            entity.USER_DEF1               = model.USER_DEF1;
            entity.USER_DEF2               = model.USER_DEF2;
            entity.USER_DEF3               = model.USER_DEF3;
            entity.USER_DEF4               = model.USER_DEF4;
            entity.USER_DEF5               = model.USER_DEF5;
            entity.USER_DEF6               = model.USER_DEF6;
            entity.USER_DEF7               = model.USER_DEF7;
            entity.USER_DEF8               = model.USER_DEF8;
            entity.USER_STAMP              = model.USER_STAMP;
            entity.DATE_TIME_STAMP         = model.DATE_TIME_STAMP;
            entity.GROUP_POSITION          = model.GROUP_POSITION;
            entity.INTERNAL_WAVE_NUM       = model.INTERNAL_WAVE_NUM;
            entity.CONTAINER_COUNT_NUMBER  = model.CONTAINER_COUNT_NUMBER;
            entity.CONTAINER_COUNT_TOTAL   = model.CONTAINER_COUNT_TOTAL;
            entity.GROUP_NUM               = model.GROUP_NUM;
            entity.PARENT_CONTAINER_ID     = model.PARENT_CONTAINER_ID;
            entity.INTERNAL_SHIP_ALLOC_NUM = model.INTERNAL_SHIP_ALLOC_NUM;
            entity.TASK_CREATED            = model.TASK_CREATED;
            entity.ATTRIBUTE_NUM           = model.ATTRIBUTE_NUM;
            entity.ORIGINAL_PICK_LOC       = model.ORIGINAL_PICK_LOC;
            entity.ATTRIBUTE1              = model.ATTRIBUTE1;
            entity.ATTRIBUTE2              = model.ATTRIBUTE2;
            entity.ATTRIBUTE3              = model.ATTRIBUTE3;
            entity.ATTRIBUTE4              = model.ATTRIBUTE4;
            entity.ATTRIBUTE5              = model.ATTRIBUTE5;
            entity.ATTRIBUTE6              = model.ATTRIBUTE6;
            entity.ATTRIBUTE7              = model.ATTRIBUTE7;
            entity.ATTRIBUTE8              = model.ATTRIBUTE8;
            entity.PROCESS_STAMP           = model.PROCESS_STAMP;
            entity.PACKING_CLASS           = model.PACKING_CLASS;
            entity.SHIPMENT_ID             = model.SHIPMENT_ID;
            entity.TRANS_CONT_ID           = model.TRANS_CONT_ID;
            entity.OQC_BENCH               = model.OQC_BENCH;
            entity.OQCED                   = model.OQCED;
            entity.OQC_USER                = model.OQC_USER;
            entity.OQC_START_DATE_TIME     = model.OQC_START_DATE_TIME;
            entity.OQC_END_DATE_TIME       = model.OQC_END_DATE_TIME;
            entity.SYSTEM_CREATED          = model.SYSTEM_CREATED;
            entity.SCANNED_QTY             = model.SCANNED_QTY;

            m_Rep.Create(entity);
        }
 public virtual void RemoveById(ref ValidationErrors errors, string id)
 {
     m_Rep.RemoveById(id);
 }
Beispiel #46
0
        public Common.ClientResult.Result Shanchu(string IDs)
        {
            ValidationErrors validationErrors = new ValidationErrors();
            StringBuilder    sbError          = new StringBuilder();
            SysEntities      SysEntitiesO2O   = new SysEntities();

            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    int[]    intArray; List <int> intArrayuser = new List <int>();
                    string[] strArray = IDs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                    intArray = Array.ConvertAll <string, int>(strArray, s => int.Parse(s));
                    var GropTable = SysEntitiesO2O.ORG_Group.FirstOrDefault(o => true && intArray.Contains(o.ID));
                    // GropTable = GropTable.FirstOrDefault(o => o.ID == IntId);
                    if (GropTable != null)
                    {
                        var       ORG_GroupBLL = new BLL.ORG_GroupBLL();
                        ORG_Group Model        = new ORG_Group();
                        Model = GropTable;
                        ORG_GroupBLL.DeleteCollection(ref validationErrors, intArray);
                    }
                    var GropUserTable = SysEntitiesO2O.ORG_GroupUser.Where(o => true && intArray.Contains(o.ORG_Group_ID)).ToList();
                    if (GropUserTable != null)
                    {
                        foreach (var item in GropUserTable)
                        {
                            int j = 0;
                            intArrayuser.Add(item.ID);
                            j++;
                        }
                    }
                    if (intArrayuser.Count > 0)
                    {
                        var   ORG_GroupUserBLL = new BLL.ORG_GroupUserBLL();
                        int[] allid            = new int[intArrayuser.Count];
                        for (int i = 0; i < intArrayuser.Count(); i++)
                        {
                            allid[i] = intArrayuser[i];
                        }

                        ORG_GroupUserBLL.DeleteCollection(ref validationErrors, allid);
                    }


                    SysEntitiesO2O.SaveChanges();
                    scope.Complete();
                    Common.ClientResult.Result result = new Common.ClientResult.Result();
                    result.Code    = ClientCode.Succeed;
                    result.Message = "删除成功";
                    return(result);
                }
            }
            catch (Exception er)
            {
                Common.ClientResult.Result result = new Common.ClientResult.Result();
                result.Code    = ClientCode.Fail;
                result.Message = "删除失败";
                return(result);
            }
        }
Beispiel #47
0
        public virtual void Create(ref ValidationErrors errors, Apps.Models.SCV.AR.AR_UPLOAD_SHIPMENT_HEADER_MODEL model)
        {
            Apps.Models.AR_UPLOAD_SHIPMENT_HEADER entity = m_Rep.GetById(model.INTERFACE_RECORD_ID);
            if (entity != null)
            {
                errors.Add(Resource.PrimaryRepeat);
                return;
            }
            entity = new Apps.Models.AR_UPLOAD_SHIPMENT_HEADER();
            entity.INTERFACE_RECORD_ID   = model.INTERFACE_RECORD_ID;
            entity.INTERFACE_ACTION_CODE = model.INTERFACE_ACTION_CODE;
            entity.INTERFACE_CONDITION   = model.INTERFACE_CONDITION;
            entity.PROCESS_STAMP         = model.PROCESS_STAMP;
            entity.WAREHOUSE             = model.WAREHOUSE;
            entity.COMPANY                   = model.COMPANY;
            entity.INTERNAL_LOAD_NUM         = model.INTERNAL_LOAD_NUM;
            entity.SHIPMENT_ID               = model.SHIPMENT_ID;
            entity.ERP_ORDER                 = model.ERP_ORDER;
            entity.LEADING_STS               = model.LEADING_STS;
            entity.TRAILING_STS              = model.TRAILING_STS;
            entity.SHIPMENT_TYPE             = model.SHIPMENT_TYPE;
            entity.ROUTE                     = model.ROUTE;
            entity.SHIP_TO                   = model.SHIP_TO;
            entity.SHIP_TO_NAME              = model.SHIP_TO_NAME;
            entity.SHIP_TO_ADDRESS1          = model.SHIP_TO_ADDRESS1;
            entity.SHIP_TO_ADDRESS2          = model.SHIP_TO_ADDRESS2;
            entity.SHIP_TO_DISTRICT          = model.SHIP_TO_DISTRICT;
            entity.SHIP_TO_CITY              = model.SHIP_TO_CITY;
            entity.SHIP_TO_STATE             = model.SHIP_TO_STATE;
            entity.SHIP_TO_COUNTRY           = model.SHIP_TO_COUNTRY;
            entity.SHIP_TO_POSTAL_CODE       = model.SHIP_TO_POSTAL_CODE;
            entity.SHIP_TO_ATTENTION_TO      = model.SHIP_TO_ATTENTION_TO;
            entity.SHIP_TO_PHONE_NUM         = model.SHIP_TO_PHONE_NUM;
            entity.SHIP_TO_MOBILE            = model.SHIP_TO_MOBILE;
            entity.SHIP_TO_FAX_NUM           = model.SHIP_TO_FAX_NUM;
            entity.SHIP_TO_EMAIL_ADDRESS     = model.SHIP_TO_EMAIL_ADDRESS;
            entity.PRIORITY                  = model.PRIORITY;
            entity.USER_STAMP                = model.USER_STAMP;
            entity.DATE_TIME_STAMP           = model.DATE_TIME_STAMP;
            entity.REQUESTED_DELIVERY_DATE   = model.REQUESTED_DELIVERY_DATE;
            entity.REQUESTED_DELIVERY_TYPE   = model.REQUESTED_DELIVERY_TYPE;
            entity.SCHEDULED_SHIP_DATE       = model.SCHEDULED_SHIP_DATE;
            entity.ACTUAL_SHIP_DATE_TIME     = model.ACTUAL_SHIP_DATE_TIME;
            entity.ACTUAL_DELIVERY_DATE_TIME = model.ACTUAL_DELIVERY_DATE_TIME;
            entity.DELIVERY_NOTE             = model.DELIVERY_NOTE;
            entity.REJECTION_NOTE            = model.REJECTION_NOTE;
            entity.INTERNAL_WAVE_NUM         = model.INTERNAL_WAVE_NUM;
            entity.SHIP_DOCK                 = model.SHIP_DOCK;
            entity.ALLOCATE_COMPLETE         = model.ALLOCATE_COMPLETE;
            entity.TOTAL_WEIGHT              = model.TOTAL_WEIGHT;
            entity.WEIGHT_UM                 = model.WEIGHT_UM;
            entity.TOTAL_VOLUME              = model.TOTAL_VOLUME;
            entity.VOLUME_UM                 = model.VOLUME_UM;
            entity.TOTAL_LINES               = model.TOTAL_LINES;
            entity.TOTAL_CONTAINERS          = model.TOTAL_CONTAINERS;
            entity.CARRIER                   = model.CARRIER;
            entity.CARRIER_SERVICE           = model.CARRIER_SERVICE;
            entity.USER_DEF1                 = model.USER_DEF1;
            entity.USER_DEF2                 = model.USER_DEF2;
            entity.USER_DEF3                 = model.USER_DEF3;
            entity.USER_DEF4                 = model.USER_DEF4;
            entity.USER_DEF5                 = model.USER_DEF5;
            entity.USER_DEF6                 = model.USER_DEF6;
            entity.USER_DEF7                 = model.USER_DEF7;
            entity.USER_DEF8                 = model.USER_DEF8;
            entity.BACK_ORDER_NUM            = model.BACK_ORDER_NUM;
            entity.PROCESS_TYPE              = model.PROCESS_TYPE;
            entity.TOTAL_QTY                 = model.TOTAL_QTY;
            entity.LAST_WAVE_NUM             = model.LAST_WAVE_NUM;
            entity.GROUP_NUM                 = model.GROUP_NUM;
            entity.GROUP_INDEX               = model.GROUP_INDEX;
            entity.SIGN_VALUE                = model.SIGN_VALUE;
            entity.SHIPMENT_SUB_TYPE         = model.SHIPMENT_SUB_TYPE;
            entity.SHIPMENT_CATEGORY1        = model.SHIPMENT_CATEGORY1;
            entity.SHIPMENT_CATEGORY2        = model.SHIPMENT_CATEGORY2;
            entity.SHIPMENT_CATEGORY3        = model.SHIPMENT_CATEGORY3;
            entity.SHIPMENT_CATEGORY4        = model.SHIPMENT_CATEGORY4;
            entity.SHIPMENT_CATEGORY5        = model.SHIPMENT_CATEGORY5;
            entity.SHIPMENT_CATEGORY6        = model.SHIPMENT_CATEGORY6;
            entity.SHIPMENT_CATEGORY7        = model.SHIPMENT_CATEGORY7;
            entity.SHIPMENT_CATEGORY8        = model.SHIPMENT_CATEGORY8;

            m_Rep.Create(entity);
        }
        public virtual bool Edit(ref ValidationErrors errors, Flow_FormContentModel model)
        {
            try
            {
                Flow_FormContent entity = m_Rep.GetById(model.Id);
                if (entity == null)
                {
                    errors.Add(Resource.Disable);
                    return(false);
                }
                entity.Id           = model.Id;
                entity.Title        = model.Title;
                entity.UserId       = model.UserId;
                entity.FormId       = model.FormId;
                entity.FormLevel    = model.FormLevel;
                entity.CreateTime   = model.CreateTime;
                entity.AttrA        = model.AttrA;
                entity.AttrB        = model.AttrB;
                entity.AttrC        = model.AttrC;
                entity.AttrD        = model.AttrD;
                entity.AttrE        = model.AttrE;
                entity.AttrF        = model.AttrF;
                entity.AttrG        = model.AttrG;
                entity.AttrH        = model.AttrH;
                entity.AttrI        = model.AttrI;
                entity.AttrJ        = model.AttrJ;
                entity.AttrK        = model.AttrK;
                entity.AttrL        = model.AttrL;
                entity.AttrM        = model.AttrM;
                entity.AttrN        = model.AttrN;
                entity.AttrO        = model.AttrO;
                entity.AttrP        = model.AttrP;
                entity.AttrQ        = model.AttrQ;
                entity.AttrR        = model.AttrR;
                entity.AttrS        = model.AttrS;
                entity.AttrT        = model.AttrT;
                entity.AttrU        = model.AttrU;
                entity.AttrV        = model.AttrV;
                entity.AttrW        = model.AttrW;
                entity.AttrX        = model.AttrX;
                entity.AttrY        = model.AttrY;
                entity.AttrZ        = model.AttrZ;
                entity.CustomMember = model.CustomMember;
                entity.TimeOut      = model.TimeOut;
                entity.IsDelete     = model.IsDelete;



                if (m_Rep.Edit(entity))
                {
                    return(true);
                }
                else
                {
                    errors.Add(Resource.NoDataChange);
                    return(false);
                }
            }
            catch (Exception ex)
            {
                errors.Add(ex.Message);
                ExceptionHander.WriteException(ex);
                return(false);
            }
        }
Beispiel #49
0
        /// <summary>
        /// 建立方案保存下一步
        /// </summary>
        /// <param name="validationErrors"></param>
        /// <param name="entity"></param>
        /// <returns></returns>
        public bool EditInst(ref ValidationErrors validationErrors, PREPARE_SCHEME entity)
        {
            try
            {
                if (entity == null)
                {
                    return(false);
                }
                List <string>  addMETERING_STANDARD_DEVICEID    = new List <string>();
                List <string>  deleteMETERING_STANDARD_DEVICEID = new List <string>();
                PREPARE_SCHEME prepare = null;
                if (entity != null)
                {
                    prepare = repository.GetById(entity.ID);
                }
                DataOfDiffrent.GetDiffrent(entity.METERING_STANDARD_DEVICEID.GetIdSort(), entity.METERING_STANDARD_DEVICEIDOld.GetIdSort(), ref addMETERING_STANDARD_DEVICEID, ref deleteMETERING_STANDARD_DEVICEID);

                PREPARE_SCHEME editEntity = repository.EditInst(db, entity);

                if (addMETERING_STANDARD_DEVICEID != null && addMETERING_STANDARD_DEVICEID.Count() > 0)
                {
                    foreach (var item in addMETERING_STANDARD_DEVICEID)
                    {
                        STANDARDCHOICE sys = new STANDARDCHOICE
                        {
                            ID = Result.GetNewId(),
                            PREPARE_SCHEMEID           = entity.ID,
                            METERING_STANDARD_DEVICEID = item.Split('*')[0],
                            GROUPS       = item.Split('*')[1],
                            TYPE         = item.Split('*')[2],
                            NAMES        = item.Split('*')[3],
                            CREATEPERSON = entity.CREATEPERSON,
                            CREATETIME   = entity.CREATETIME
                        };
                        //db.STANDARDCHOICE.Attach(sys);
                        editEntity.STANDARDCHOICE.Add(sys);
                    }
                }
                if (deleteMETERING_STANDARD_DEVICEID != null && deleteMETERING_STANDARD_DEVICEID.Count() > 0)
                {
                    foreach (var item in deleteMETERING_STANDARD_DEVICEID)
                    {
                        string ID = item.Split('*')[0];

                        STANDARDCHOICE sys = new STANDARDCHOICE()
                        {
                            ID = ID
                        };

                        db.STANDARDCHOICE.Attach(sys);
                        editEntity.STANDARDCHOICE.Remove(sys);
                        db.STANDARDCHOICE.Remove(sys);
                    }
                }
                #region 更新了引用方案,需要删除原方案数据所录入的数据
                if (prepare != null && !string.IsNullOrWhiteSpace(prepare.SCHEMEID) && prepare.SCHEMEID != entity.SCHEMEID)
                {
                    List <QUALIFIED_UNQUALIFIED_TEST_ITE> deleteQUALIFIED_UNQUALIFIED_TEST_ITEList = (from f in db.QUALIFIED_UNQUALIFIED_TEST_ITE
                                                                                                      where f.PREPARE_SCHEMEID == entity.ID
                                                                                                      select f).ToList();
                    db.QUALIFIED_UNQUALIFIED_TEST_ITE.RemoveRange(deleteQUALIFIED_UNQUALIFIED_TEST_ITEList);
                }
                #endregion

                repository.Save(db);

                return(true);
            }
            catch (Exception ex)
            {
                validationErrors.Add(ex.Message);
                ExceptionsHander.WriteExceptions(ex);
            }
            return(false);
        }
Beispiel #50
0
        //protected DbTransaction BeginTransaction(IsolationLevel level = IsolationLevel.Unspecified)
        //{
        //    if (Context.Database.Connection.State != ConnectionState.Open)
        //        Context.Database.Connection.Open();

        //    return Context.Database.Connection.BeginTransaction(level);
        //}

        //public void CommitTransaction()
        //{
        //    Context.Database.Connection.
        //}

        //public void RollbackTransaction()
        //{
        //}


        /// <summary>
        /// Saves all changes.
        /// </summary>
        /// <remarks>
        /// This method calls Context.SaveChanges() so it saves
        /// all changes made in the context not just changes made
        /// to the current entity. It's crucial to Save() as
        /// atomically as possible or else use separate Business
        /// object instances with separate contexts.
        /// </remarks>
        /// <returns></returns>
        public bool Save(TEntity entity = null)
        {
            if (entity == null)
            {
                entity = Entity;
            }

            using (var transaction = new TransactionScope())
            {
                // hook point - allow logic to abort saving
                if (!OnBeforeSave(entity))
                {
                    return(false);
                }

                // now do validations
                if (AutoValidate)
                {
                    if (!Validate(entity))
                    {
                        return(false);
                    }
                }

                int affected = 0;
                try
                {
                    affected = Context.SaveChanges();
                }
                catch (DbEntityValidationException ex)
                {
                    foreach (var entry in ex.EntityValidationErrors)
                    {
                        foreach (var error in entry.ValidationErrors)
                        {
                            ValidationErrors.Add(error.ErrorMessage, error.PropertyName);
                        }
                    }
                    SetError(ValidationErrors.ToString());
                    return(false);
                }
                catch (DbUpdateException ex)
                {
                    SetError(ex, true);
                    return(false);
                }
                catch (Exception ex)
                {
                    SetError(ex, true);
                    return(false);
                }

                if (!OnAfterSave(Entity))
                {
                    return(false);
                }

                transaction.Complete();
            }

            return(true);
        }
        /// <summary>
        /// 校验Excel数据,这个方法一般用于重写校验逻辑
        /// </summary>
        public virtual bool CheckImportData(string fileName, List <Spl_ContactCompanyCategoryModel> list, ref ValidationErrors errors)
        {
            var targetFile = new FileInfo(fileName);

            if (!targetFile.Exists)
            {
                errors.Add("导入的数据文件不存在");
                return(false);
            }

            var excelFile = new ExcelQueryFactory(fileName);

            //对应列头
            excelFile.AddMapping <Spl_ContactCompanyCategoryModel>(x => x.Name, "单位类别");
            excelFile.AddMapping <Spl_ContactCompanyCategoryModel>(x => x.CreateTime, "创建时间");
            excelFile.AddMapping <Spl_ContactCompanyCategoryModel>(x => x.Category, "客户or供应商");

            //SheetName
            var excelContent = excelFile.Worksheet <Spl_ContactCompanyCategoryModel>(0);
            int rowIndex     = 1;

            //检查数据正确性
            foreach (var row in excelContent)
            {
                var errorMessage = new StringBuilder();
                var entity       = new Spl_ContactCompanyCategoryModel();
                entity.Id         = row.Id;
                entity.Name       = row.Name;
                entity.CreateTime = row.CreateTime;
                entity.Category   = row.Category;

                //=============================================================================
                if (errorMessage.Length > 0)
                {
                    errors.Add(string.Format(
                                   "第 {0} 列发现错误:{1}{2}",
                                   rowIndex,
                                   errorMessage,
                                   "<br/>"));
                }
                list.Add(entity);
                rowIndex += 1;
            }
            if (errors.Count > 0)
            {
                return(false);
            }
            return(true);
        }
Beispiel #52
0
 public DataAnnotationsValidationResult AddRange(IEnumerable <ValidationError> validationErrors)
 {
     ValidationErrors.AddRange(validationErrors);
     return(this);
 }
Beispiel #53
0
 public virtual bool Check(ref ValidationErrors errors, object id, int flag)
 {
     return(true);
 }
Beispiel #54
0
        private async Task SaveTrackerAsync()
        {
            if (ActionType != ActionType.Submit)
            {
                return;
            }
            ValidationErrors validationErrors = new ValidationErrors();

            SetActivityResource(false, true, false, false, TextResources.ProcessingDataPleaseWait, string.Empty,
                                string.Empty);
            if (await Validate())
            {
                var trackerList = await BuildTracker();

                if (trackerList.Count > 0)
                {
                    var response = await trackerService.SaveTrackerAsync(trackerList);

                    if (response == HttpConstants.SUCCESS)
                    {
                        var result = await MilestoneSaveAsync();

                        if (result)
                        {
                            var userMeta = new List <Meta>()
                            {
                                await metaService.AddMeta(GenderSelected.ToString(), MetaConstants.GENDER,
                                                          MetaConstants.GENDER, MetaConstants.LABEL)
                            };
                            if (IsGenderRequired)
                            {
                                var metaResult = await metaService.SaveMetaAsync(userMeta);

                                if (metaResult == HttpConstants.SUCCESS)
                                {
                                }
                            }

                            await SaveSuccessful(result
                                                 ?string.Empty
                                                 : TextResources.MessageMilestoneSubmissionFailed);
                        }
                    }
                    else if (response.ToString().Contains(HttpConstants.UNAUTHORIZED))
                    {
                        await authenticationService.LogoutAsync();

                        App.GoToAccountPage();
                    }
                    else
                    {
                        SetActivityResource(true, false, false, true, string.Empty, string.Empty, response);
                    }
                }
                else
                {
                    SetActivityResource(true, false, false, true, string.Empty, string.Empty,
                                        TextResources.NoRecordToProcess);
                }
            }
        }
Beispiel #55
0
 public ErrorResult(ValidationErrors errors)
     : base(errors.ToString())
 {
 }
        /// <summary>
        /// 校验Excel数据,这个方法一般用于重写校验逻辑
        /// </summary>
        public virtual bool CheckImportData(string fileName, List <Flow_FormContentStepCheckModel> list, ref ValidationErrors errors)
        {
            var targetFile = new FileInfo(fileName);

            if (!targetFile.Exists)
            {
                errors.Add("导入的数据文件不存在");
                return(false);
            }

            var excelFile = new ExcelQueryFactory(fileName);

            //对应列头
            excelFile.AddMapping <Flow_FormContentStepCheckModel>(x => x.ContentId, "所属公文");
            excelFile.AddMapping <Flow_FormContentStepCheckModel>(x => x.StepId, "所属步骤");
            excelFile.AddMapping <Flow_FormContentStepCheckModel>(x => x.State, "0不通过1通过2审核中");
            excelFile.AddMapping <Flow_FormContentStepCheckModel>(x => x.StateFlag, "状态(是否完成)");
            excelFile.AddMapping <Flow_FormContentStepCheckModel>(x => x.CreateTime, "创建时间");
            excelFile.AddMapping <Flow_FormContentStepCheckModel>(x => x.IsEnd, "是否结束");
            excelFile.AddMapping <Flow_FormContentStepCheckModel>(x => x.IsCustom, "是否自选审核人默认为false");

            //SheetName
            var excelContent = excelFile.Worksheet <Flow_FormContentStepCheckModel>(0);
            int rowIndex     = 1;

            //检查数据正确性
            foreach (var row in excelContent)
            {
                var errorMessage = new StringBuilder();
                var entity       = new Flow_FormContentStepCheckModel();
                entity.Id         = row.Id;
                entity.ContentId  = row.ContentId;
                entity.StepId     = row.StepId;
                entity.State      = row.State;
                entity.StateFlag  = row.StateFlag;
                entity.CreateTime = row.CreateTime;
                entity.IsEnd      = row.IsEnd;
                entity.IsCustom   = row.IsCustom;

                //=============================================================================
                if (errorMessage.Length > 0)
                {
                    errors.Add(string.Format(
                                   "第 {0} 列发现错误:{1}{2}",
                                   rowIndex,
                                   errorMessage,
                                   "<br/>"));
                }
                list.Add(entity);
                rowIndex += 1;
            }
            if (errors.Count > 0)
            {
                return(false);
            }
            return(true);
        }
Beispiel #57
0
        public bool ImportExcelData(string oper, string filePath, ref ValidationErrors errors)
        {
            bool rtn = true;

            var targetFile = new FileInfo(filePath);

            if (!targetFile.Exists)
            {
                errors.Add("导入的数据文件不存在");
                return(false);
            }

            var excelFile = new ExcelQueryFactory(filePath);

            using (XLWorkbook wb = new XLWorkbook(filePath))
            {
                //第一个Sheet
                using (IXLWorksheet wws = wb.Worksheets.First())
                {
                    //对应列头
                    excelFile.AddMapping <WMS_InvModel>(x => x.InvId, "");
                    excelFile.AddMapping <WMS_InvModel>(x => x.SubInvId, "");
                    excelFile.AddMapping <WMS_InvModel>(x => x.PartId, "");
                    excelFile.AddMapping <WMS_InvModel>(x => x.Qty, "");

                    //SheetName,第一个Sheet
                    var excelContent = excelFile.Worksheet <WMS_InvModel>(0);

                    //开启事务
                    using (DBContainer db = new DBContainer())
                    {
                        var tran     = db.Database.BeginTransaction();                      //开启事务
                        int rowIndex = 0;

                        //检查数据正确性
                        foreach (var row in excelContent)
                        {
                            rowIndex += 1;
                            string errorMessage = String.Empty;
                            var    model        = new WMS_InvModel();
                            model.Id       = row.Id;
                            model.InvId    = row.InvId;
                            model.SubInvId = row.SubInvId;
                            model.PartId   = row.PartId;
                            model.Qty      = row.Qty;

                            if (!String.IsNullOrEmpty(errorMessage))
                            {
                                rtn = false;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                                continue;
                            }

                            //执行额外的数据校验
                            try
                            {
                                AdditionalCheckExcelData(ref model);
                            }
                            catch (Exception ex)
                            {
                                rtn          = false;
                                errorMessage = ex.Message;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                                continue;
                            }

                            //写入数据库
                            WMS_Inv entity = new WMS_Inv();
                            entity.Id       = model.Id;
                            entity.InvId    = model.InvId;
                            entity.SubInvId = model.SubInvId;
                            entity.PartId   = model.PartId;
                            entity.Qty      = model.Qty;

                            db.WMS_Inv.Add(entity);
                            try
                            {
                                db.SaveChanges();
                            }
                            catch (Exception ex)
                            {
                                rtn = false;
                                //将当前报错的entity状态改为分离,类似EF的回滚(忽略之前的Add操作)
                                db.Entry(entity).State = System.Data.Entity.EntityState.Detached;
                                errorMessage           = ex.InnerException.InnerException.Message;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                            }
                        }

                        if (rtn)
                        {
                            tran.Commit();                                      //必须调用Commit(),不然数据不会保存
                        }
                        else
                        {
                            tran.Rollback();                                        //出错就回滚
                        }
                    }
                }
                wb.Save();
            }

            return(rtn);
        }
Beispiel #58
0
        public bool ImportExcelData(string oper, string filePath, ref ValidationErrors errors)
        {
            bool rtn = true;

            var targetFile = new FileInfo(filePath);

            if (!targetFile.Exists)
            {
                errors.Add("导入的数据文件不存在");
                return(false);
            }

            var excelFile = new ExcelQueryFactory(filePath);

            using (XLWorkbook wb = new XLWorkbook(filePath))
            {
                //第一个Sheet
                using (IXLWorksheet wws = wb.Worksheets.First())
                {
                    //对应列头
                    excelFile.AddMapping <WMS_Feed_ListModel>(x => x.FeedBillNum, "投料单号(业务)(必输)");
                    //excelFile.AddMapping<WMS_Feed_ListModel>(x => x.ReleaseBillNum, "投料单号(系统)");
                    excelFile.AddMapping <WMS_Feed_ListModel>(x => x.Department, "投料部门");
                    excelFile.AddMapping <WMS_Feed_ListModel>(x => x.AssemblyPartCode, "总成物料");
                    excelFile.AddMapping <WMS_Feed_ListModel>(x => x.SubAssemblyPartCode, "投料物料(必输)");
                    excelFile.AddMapping <WMS_Feed_ListModel>(x => x.Lot, "批次号(格式:YYYY-MM-DD)");
                    excelFile.AddMapping <WMS_Feed_ListModel>(x => x.FeedQty, "投料数量(必输)");
                    excelFile.AddMapping <WMS_Feed_ListModel>(x => x.BoxQty, "箱数");
                    excelFile.AddMapping <WMS_Feed_ListModel>(x => x.Capacity, "体积");
                    excelFile.AddMapping <WMS_Feed_ListModel>(x => x.InvName, "库房");
                    //excelFile.AddMapping<WMS_Feed_ListModel>(x => x.SubInvId, "子库存");
                    excelFile.AddMapping <WMS_Feed_ListModel>(x => x.Remark, "备注");
                    //excelFile.AddMapping<WMS_Feed_ListModel>(x => x.PrintStaus, "打印状态");
                    //excelFile.AddMapping<WMS_Feed_ListModel>(x => x.PrintDate, "打印时间");
                    //excelFile.AddMapping<WMS_Feed_ListModel>(x => x.PrintMan, "打印人");
                    //excelFile.AddMapping<WMS_Feed_ListModel>(x => x.ConfirmStatus, "确认状态");
                    //excelFile.AddMapping<WMS_Feed_ListModel>(x => x.ConfirmMan, "确认人");
                    //excelFile.AddMapping<WMS_Feed_ListModel>(x => x.ConfirmDate, "确认时间");
                    //excelFile.AddMapping<WMS_Feed_ListModel>(x => x.Attr1, "");
                    //excelFile.AddMapping<WMS_Feed_ListModel>(x => x.Attr2, "");
                    //excelFile.AddMapping<WMS_Feed_ListModel>(x => x.Attr3, "");
                    //excelFile.AddMapping<WMS_Feed_ListModel>(x => x.Attr4, "");
                    //excelFile.AddMapping<WMS_Feed_ListModel>(x => x.Attr5, "");
                    //excelFile.AddMapping<WMS_Feed_ListModel>(x => x.CreatePerson, "创建人");
                    //excelFile.AddMapping<WMS_Feed_ListModel>(x => x.CreateTime, "创建时间");
                    //excelFile.AddMapping<WMS_Feed_ListModel>(x => x.ModifyPerson, "修改人");
                    //excelFile.AddMapping<WMS_Feed_ListModel>(x => x.ModifyTime, "修改时间");

                    //SheetName,第一个Sheet
                    var excelContent = excelFile.Worksheet <WMS_Feed_ListModel>(0);

                    //开启事务
                    using (DBContainer db = new DBContainer())
                    {
                        var tran     = db.Database.BeginTransaction();                      //开启事务
                        int rowIndex = 0;

                        //检查数据正确性
                        foreach (var row in excelContent)
                        {
                            rowIndex += 1;
                            string errorMessage = String.Empty;
                            var    model        = new WMS_Feed_ListModel();
                            model.Id          = row.Id;
                            model.FeedBillNum = row.FeedBillNum;
                            //把系统单据号与业务单据号赋一样的值
                            model.ReleaseBillNum      = row.FeedBillNum;
                            model.Department          = row.Department;
                            model.AssemblyPartCode    = row.AssemblyPartCode;
                            model.SubAssemblyPartCode = row.SubAssemblyPartCode;
                            model.FeedQty             = row.FeedQty;
                            model.BoxQty   = row.BoxQty;
                            model.Capacity = row.Capacity;
                            model.InvName  = row.InvName;
                            model.Lot      = row.Lot;
                            //model.SubInvId = row.SubInvId;
                            model.Remark = row.Remark;
                            //默认已打印
                            model.PrintStaus = "已打印";
                            //model.PrintDate = row.PrintDate;
                            //model.PrintMan = row.PrintMan;
                            //model.ConfirmStatus = row.ConfirmStatus;
                            //model.ConfirmMan = row.ConfirmMan;
                            //model.ConfirmDate = row.ConfirmDate;
                            //model.Attr1 = row.Attr1;
                            //model.Attr2 = row.Attr2;
                            //model.Attr3 = row.Attr3;
                            //model.Attr4 = row.Attr4;
                            //model.Attr5 = row.Attr5;
                            //model.CreatePerson = row.CreatePerson;
                            //model.CreateTime = row.CreateTime;
                            //model.ModifyPerson = row.ModifyPerson;
                            //model.ModifyTime = row.ModifyTime;

                            if (!String.IsNullOrEmpty(errorMessage))
                            {
                                rtn = false;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                                continue;
                            }

                            //执行额外的数据校验
                            try
                            {
                                AdditionalCheckExcelData(db, ref model);
                            }
                            catch (Exception ex)
                            {
                                rtn          = false;
                                errorMessage = ex.Message;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                                continue;
                            }

                            //写入数据库
                            WMS_Feed_List entity = new WMS_Feed_List();
                            entity.Id             = model.Id;
                            entity.FeedBillNum    = model.FeedBillNum;
                            entity.ReleaseBillNum = model.ReleaseBillNum;
                            //entity.ReleaseBillNum = "TL" + DateTime.Now.ToString("yyyyMMddHHmmssff");打印时生成
                            entity.Department        = model.Department;
                            entity.AssemblyPartId    = model.AssemblyPartId;
                            entity.SubAssemblyPartId = model.SubAssemblyPartId;
                            entity.FeedQty           = model.FeedQty;
                            entity.BoxQty            = model.BoxQty;
                            entity.Capacity          = model.Capacity;
                            entity.InvId             = model.InvId;
                            entity.Lot = model.Lot;
                            //entity.SubInvId = model.SubInvId;
                            entity.Remark     = model.Remark;
                            entity.PrintStaus = "已打印";
                            //entity.PrintDate = model.PrintDate;
                            //entity.PrintMan = model.PrintMan;
                            entity.ConfirmStatus = "未确认";
                            //entity.ConfirmMan = model.ConfirmMan;
                            //entity.ConfirmDate = model.ConfirmDate;
                            //entity.Attr1 = model.Attr1;
                            //entity.Attr2 = model.Attr2;
                            //entity.Attr3 = model.Attr3;
                            //entity.Attr4 = model.Attr4;
                            //entity.Attr5 = model.Attr5;
                            //entity.CreatePerson = model.CreatePerson;
                            //entity.CreateTime = model.CreateTime;
                            //entity.ModifyPerson = model.ModifyPerson;
                            //entity.ModifyTime = model.ModifyTime;
                            entity.CreatePerson = oper;
                            entity.CreateTime   = DateTime.Now;
                            entity.ModifyPerson = oper;
                            entity.ModifyTime   = DateTime.Now;

                            db.WMS_Feed_List.Add(entity);
                            try
                            {
                                db.SaveChanges();
                            }
                            catch (Exception ex)
                            {
                                rtn = false;
                                //将当前报错的entity状态改为分离,类似EF的回滚(忽略之前的Add操作)
                                db.Entry(entity).State = System.Data.Entity.EntityState.Detached;
                                errorMessage           = ex.InnerException.InnerException.Message;
                                errors.Add(string.Format("第 {0} 列发现错误:{1}{2}", rowIndex, errorMessage, "<br/>"));
                                wws.Cell(rowIndex + 1, excelFile.GetColumnNames("Sheet1").Count()).Value = errorMessage;
                            }
                        }

                        if (rtn)
                        {
                            tran.Commit();                                      //必须调用Commit(),不然数据不会保存
                        }
                        else
                        {
                            tran.Rollback();                                        //出错就回滚
                        }
                    }
                }
                wb.Save();
            }

            return(rtn);
        }
Beispiel #59
0
        /// <summary>
        /// 校验Excel数据,这个方法一般用于重写校验逻辑
        /// </summary>
        public virtual bool CheckImportData(string fileName, List <MIS_Article_CommentModel> list, ref ValidationErrors errors)
        {
            var targetFile = new FileInfo(fileName);

            if (!targetFile.Exists)
            {
                errors.Add("导入的数据文件不存在");
                return(false);
            }

            var excelFile = new ExcelQueryFactory(fileName);

            //对应列头
            excelFile.AddMapping <MIS_Article_CommentModel>(x => x.ArticleId, "所属文章");
            excelFile.AddMapping <MIS_Article_CommentModel>(x => x.UserId, "发布者");
            excelFile.AddMapping <MIS_Article_CommentModel>(x => x.TrueName, "姓名");
            excelFile.AddMapping <MIS_Article_CommentModel>(x => x.IP, "IP");
            excelFile.AddMapping <MIS_Article_CommentModel>(x => x.BodyContent, "内容");
            excelFile.AddMapping <MIS_Article_CommentModel>(x => x.CreateTime, "创建时间");
            excelFile.AddMapping <MIS_Article_CommentModel>(x => x.IsReply, "是否回复");
            excelFile.AddMapping <MIS_Article_CommentModel>(x => x.ReplyContent, "回复内容");
            excelFile.AddMapping <MIS_Article_CommentModel>(x => x.ReplyTime, "回复时间");

            //SheetName
            var excelContent = excelFile.Worksheet <MIS_Article_CommentModel>(0);
            int rowIndex     = 1;

            //检查数据正确性
            foreach (var row in excelContent)
            {
                var errorMessage = new StringBuilder();
                var entity       = new MIS_Article_CommentModel();
                entity.Id           = row.Id;
                entity.ArticleId    = row.ArticleId;
                entity.UserId       = row.UserId;
                entity.TrueName     = row.TrueName;
                entity.IP           = row.IP;
                entity.BodyContent  = row.BodyContent;
                entity.CreateTime   = row.CreateTime;
                entity.IsReply      = row.IsReply;
                entity.ReplyContent = row.ReplyContent;
                entity.ReplyTime    = row.ReplyTime;

                //=============================================================================
                if (errorMessage.Length > 0)
                {
                    errors.Add(string.Format(
                                   "第 {0} 列发现错误:{1}{2}",
                                   rowIndex,
                                   errorMessage,
                                   "<br/>"));
                }
                list.Add(entity);
                rowIndex += 1;
            }
            if (errors.Count > 0)
            {
                return(false);
            }
            return(true);
        }
 public void WhenValid()
 {
     Inventor context = new Inventor("Nikola Tesla", new DateTime(1856, 7, 9), "Serbian");
     IValidationErrors errors = new ValidationErrors();
     ErrorMessageAction action = new ErrorMessageAction("error", "errors");
     
     action.Execute(true, context, null, errors);
     Assert.IsTrue(errors.IsEmpty);
 }