public QuackTaskDataWrapper(SC.IDictionary dic)
 {
     _getter = k => dic[k];
     _setter = delegate(string k, object v)
     {
         dic[k] = v;
     };
 }
        public void EncodeDecodeSingleValuesTest()
        {
            var initialValues = new []
            {
                new Tuple<object, DecodeHandler, EncodeHandler>("utf8 text mañana", TypeCodec.DecodeText, TypeCodec.EncodeText),
                new Tuple<object, DecodeHandler, EncodeHandler>("ascii text", TypeCodec.DecodeAscii, TypeCodec.EncodeAscii),
                new Tuple<object, DecodeHandler, EncodeHandler>(1234, TypeCodec.DecodeInt, TypeCodec.EncodeInt),
                new Tuple<object, DecodeHandler, EncodeHandler>((long)3129, TypeCodec.DecodeBigint, TypeCodec.EncodeBigint),
                new Tuple<object, DecodeHandler, EncodeHandler>(1234F, TypeCodec.DecodeFloat, TypeCodec.EncodeFloat),

                new Tuple<object, DecodeHandler, EncodeHandler>(1.14D, TypeCodec.DecodeDouble, TypeCodec.EncodeDouble),
                new Tuple<object, DecodeHandler, EncodeHandler>(double.MinValue, TypeCodec.DecodeDouble, TypeCodec.EncodeDouble),
                new Tuple<object, DecodeHandler, EncodeHandler>(-1.14, TypeCodec.DecodeDouble, TypeCodec.EncodeDouble),
                new Tuple<object, DecodeHandler, EncodeHandler>(0d, TypeCodec.DecodeDouble, TypeCodec.EncodeDouble),
                new Tuple<object, DecodeHandler, EncodeHandler>(double.MaxValue, TypeCodec.DecodeDouble, TypeCodec.EncodeDouble),
                new Tuple<object, DecodeHandler, EncodeHandler>(double.NaN, TypeCodec.DecodeDouble, TypeCodec.EncodeDouble),

                new Tuple<object, DecodeHandler, EncodeHandler>(1.01M, TypeCodec.DecodeDecimal, TypeCodec.EncodeDecimal),
                
                new Tuple<object, DecodeHandler, EncodeHandler>(72.727272727272727272727272727M, TypeCodec.DecodeDecimal, TypeCodec.EncodeDecimal),
                new Tuple<object, DecodeHandler, EncodeHandler>(-72.727272727272727272727272727M, TypeCodec.DecodeDecimal, TypeCodec.EncodeDecimal),
                new Tuple<object, DecodeHandler, EncodeHandler>(-256M, TypeCodec.DecodeDecimal, TypeCodec.EncodeDecimal),
                new Tuple<object, DecodeHandler, EncodeHandler>(256M, TypeCodec.DecodeDecimal, TypeCodec.EncodeDecimal),
                new Tuple<object, DecodeHandler, EncodeHandler>(0M, TypeCodec.DecodeDecimal, TypeCodec.EncodeDecimal),
                new Tuple<object, DecodeHandler, EncodeHandler>(-1.333333M, TypeCodec.DecodeDecimal, TypeCodec.EncodeDecimal),
                new Tuple<object, DecodeHandler, EncodeHandler>(-256.512M, TypeCodec.DecodeDecimal, TypeCodec.EncodeDecimal),
                new Tuple<object, DecodeHandler, EncodeHandler>(Decimal.MaxValue, TypeCodec.DecodeDecimal, TypeCodec.EncodeDecimal),
                new Tuple<object, DecodeHandler, EncodeHandler>(Decimal.MinValue, TypeCodec.DecodeDecimal, TypeCodec.EncodeDecimal),
                
                new Tuple<object, DecodeHandler, EncodeHandler>(new DateTime(1983, 2, 24), TypeCodec.DecodeTimestamp, TypeCodec.EncodeTimestamp),
                new Tuple<object, DecodeHandler, EncodeHandler>(new DateTimeOffset(new DateTime(2015, 10, 21)), TypeCodec.DecodeTimestamp, TypeCodec.EncodeTimestamp),
                new Tuple<object, DecodeHandler, EncodeHandler>(new IPAddress(new byte[] { 1, 1, 5, 255}), TypeCodec.DecodeInet, TypeCodec.EncodeInet),
                new Tuple<object, DecodeHandler, EncodeHandler>(true, TypeCodec.DecodeBoolean, TypeCodec.EncodeBoolean),
                new Tuple<object, DecodeHandler, EncodeHandler>(new byte[] {16}, TypeCodec.DecodeBlob, TypeCodec.EncodeBlob),
                new Tuple<object, DecodeHandler, EncodeHandler>(Guid.NewGuid(), TypeCodec.DecodeUuid, TypeCodec.EncodeUuid),
                new Tuple<object, DecodeHandler, EncodeHandler>(Guid.NewGuid(), TypeCodec.DecodeTimeuuid, TypeCodec.EncodeTimeuuid),
                new Tuple<object, DecodeHandler, EncodeHandler>(TimeUuid.NewId(), TypeCodec.DecodeTimeuuid, TypeCodec.EncodeTimeuuid)
            };
            foreach (var version in _protocolVersions)
            {
                foreach (var valueToConvert in initialValues)
                {
                    var value = valueToConvert.Item1;
                    var encoder = valueToConvert.Item3;
                    var decoder = valueToConvert.Item2;
                    byte[] encoded = encoder(version, null, value);
                    Assert.AreEqual(value, decoder(version, null, encoded, value.GetType()));
                }
            }
        }
Example #3
0
 public Hashtable(Collections.Hashtable h)
 {
     this.h=h;
 }
        public JsonResult AdjustHuIpGap(string idStr, com.Sconit.CodeMaster.IpGapAdjustOption gapAdjustOption)
        {
            try
            {
                IList<IpDetail> ipDetailList = new List<IpDetail>();
                if (!string.IsNullOrEmpty(idStr))
                {
                    string[] idArray = idStr.Split(',');

                    for (int i = 0; i < idArray.Count(); i++)
                    {
                        IpLocationDetail ipLocationDetail = genericMgr.FindById<IpLocationDetail>(Convert.ToInt32(idArray[i]));
                        var existIpDetail = ipDetailList.Where(d => d.Id == ipLocationDetail.IpDetailId).ToList();
                        if (existIpDetail != null && existIpDetail.Count > 0)
                        {
                            IpDetail ipDetail = existIpDetail[0];
                            IpDetailInput input = new IpDetailInput();
                            input.ReceiveQty = ipLocationDetail.Qty / existIpDetail[0].UnitQty; //转为订单单位
                            input.HuId = ipLocationDetail.HuId;
                            input.LotNo = ipLocationDetail.LotNo;
                            existIpDetail[0].AddIpDetailInput(input);
                        }
                        else
                        {
                            IpDetail ipDetail = genericMgr.FindById<IpDetail>(ipLocationDetail.IpDetailId);
                            IpDetailInput input = new IpDetailInput();
                            input.ReceiveQty = ipLocationDetail.Qty / ipDetail.UnitQty; //转为订单单位
                            input.HuId = ipLocationDetail.HuId;
                            input.LotNo = ipLocationDetail.LotNo;
                            ipDetail.AddIpDetailInput(input);
                            ipDetailList.Add(ipDetail);
                        }

                    }
                }
                if (ipDetailList.Count() == 0)
                {
                    throw new BusinessException(Resources.EXT.ControllerLan.Con_AdjustDetailCanNotBeEmpty);
                }

                orderMgr.AdjustIpGap(ipDetailList, gapAdjustOption);
                object obj = new { SuccessMessage = string.Format(Resources.ORD.IpMaster.IpMaster_Adjusted, ipDetailList[0].IpNo), SuccessData = ipDetailList[0].IpNo };
                return Json(obj);


            }
            catch (BusinessException ex)
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 500;
                Response.Write(ex.GetMessages()[0].GetMessageString());
                return Json(null);
            }
        }
        public JsonResult FinishFacilityOrder(string facilityOrderNo, string idStr, string qtyStr, string noteStr)
        {
            try
            {
                FacilityOrderMaster facilityOrderMaster = genericMgr.FindById<FacilityOrderMaster>(facilityOrderNo);
                IList<FacilityOrderDetail> facilityOrderDetailList = genericMgr.FindAll<FacilityOrderDetail>("from FacilityOrderDetail where FacilityOrderNo=?", facilityOrderNo);
                if (!string.IsNullOrEmpty(idStr))
                {
                    string[] idArray = idStr.Split(',');
                    string[] qtyArray = qtyStr.Split(',');
                    string[] noteArray = noteStr.Split(',');
                    for (int i = 0; i < idArray.Count(); i++)
                    {
                        if (Convert.ToInt32(idArray[i]) > 0)
                        {
                            FacilityOrderDetail facilityOrderDetail = facilityOrderDetailList.Where(p => p.Id == Convert.ToInt32(idArray[i])).FirstOrDefault();

                            facilityOrderDetail.ActualQty = Convert.ToDecimal(qtyArray[i]);
                            facilityOrderDetail.Note = noteArray[i];

                        }
                    }
                }
                facilityOrderMaster.FacilityOrderDetails = facilityOrderDetailList.ToList();
                facilityMgr.FinishFacilityOrder(facilityOrderMaster);

                object obj = new { SuccessMessage = "保养完成成功" };
                return Json(obj);
            }
            catch (BusinessException ex)
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 500;
                Response.Write(ex.GetMessages()[0].GetMessageString());
                return Json(null);
            }
        }
        public JsonResult ReceiveHuIpMaster(string idStr, string externalIpNo, string ipNo)
        {
            IList<IpDetail> ipDetailList = new List<IpDetail>();
            try
            {
                if (!string.IsNullOrEmpty(ipNo))
                {
                    IpMaster ipMaster = genericMgr.FindById<IpMaster>(ipNo);
                    ipMaster.ExternalIpNo = externalIpNo;
                    genericMgr.Update(ipMaster);
                }
                if (!string.IsNullOrEmpty(idStr))
                {
                    string[] idArr = idStr.Split(',');
                    foreach (string id in idArr)
                    {
                        IpLocationDetail ipLocationDetail = genericMgr.FindById<IpLocationDetail>(int.Parse(id));
                        IpDetail ipDetail = genericMgr.FindById<IpDetail>(ipLocationDetail.IpDetailId);
                        IpDetailInput input = new IpDetailInput();
                        input.ReceiveQty = ipLocationDetail.Qty / ipDetail.UnitQty;  //转为订单单位
                        ipDetail.AddIpDetailInput(input);
                        ipDetailList.Add(ipDetail);
                    }

                }
                if (ipDetailList.Count() == 0)
                {
                    throw new BusinessException(Resources.EXT.ControllerLan.Con_ReceiveDetailCanNotBeEmpty);
                }

                ReceiptMaster receiptMaster = orderMgr.ReceiveIp(ipDetailList);
                object obj = new { SuccessMessage = string.Format(Resources.ORD.IpMaster.IpMaster_Received, ipDetailList[0].IpNo, receiptMaster.ReceiptNo), SuccessData = ipDetailList[0].IpNo };
                return Json(obj);
            }
            catch (BusinessException ex)
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 500;
                Response.Write(ex.GetMessages()[0].GetMessageString());
                return Json(null);
            }
        }
 public void Encode_Decode_TinyInt()
 {
     var values = new[]
     {
         Tuple.Create<sbyte, byte>(-1, 0xff),
         Tuple.Create<sbyte, byte>(-2, 0xfe),
         Tuple.Create<sbyte, byte>(0, 0),
         Tuple.Create<sbyte, byte>(1, 1),
         Tuple.Create<sbyte, byte>(2, 2),
         Tuple.Create<sbyte, byte>(127, 127)
     };
     foreach (var v in values)
     {
         var encoded = TypeCodec.EncodeSByte(4, null, v.Item1);
         CollectionAssert.AreEqual(encoded, new[] { v.Item2 });
         var decoded = (sbyte)TypeCodec.DecodeSByte(4, null, encoded, null);
         Assert.AreEqual(v.Item1, decoded);
     }
 }
 public void Encode_Decode_Date()
 {
     var values = new[]
     {
         new LocalDate(2010, 4, 29),
         new LocalDate(2005, 8, 5),
         new LocalDate(0, 3, 12),
         new LocalDate(-10, 2, 4),
         new LocalDate(5881580, 7, 11),
         new LocalDate(-5877641, 6, 23)
     };
     var serializer = NewInstance();
     foreach (var v in values)
     {
         var encoded = serializer.Serialize(v);
         var decoded = (LocalDate)serializer.Deserialize(encoded, ColumnTypeCode.Date, null);
         Assert.AreEqual(v, decoded);
     }
 }
        public JsonResult CreateRejectTransfer(string location, string idStr, string qtyStr)
        {
            try
            {
                #region 检查库位
                if (string.IsNullOrEmpty(location))
                {
                    throw new BusinessException("库位不能为空");
                }
                Location locTo = base.genericMgr.FindById<Location>(location);
                #endregion

                if (string.IsNullOrEmpty(idStr))
                {
                    throw new BusinessException("退货明细不能为空");
                }
                string[] idArr = idStr.Split(',');

                IList<RejectDetail> rejectDetailList = new List<RejectDetail>();
                foreach (string id in idArr)
                {
                    RejectDetail rejectDetail = base.genericMgr.FindById<RejectDetail>(Convert.ToInt32(id));
                    rejectDetailList.Add(rejectDetail);
                }

                orderMgr.CreateRejectTransfer(locTo, rejectDetailList);
                object obj = new { SuccessMessage = string.Format(Resources.INP.RejectMaster.RejectMaster_Transfered) };
                return Json(obj);
            }
            catch (BusinessException ex)
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 500;
                Response.Write(ex.GetMessages()[0].GetMessageString());
                return Json(null);
            }
        }
        public JsonResult CreateInspectTransfer(string location, string idStr, string qtyStr)
        {
            try
            {
                #region 检查库位
                if (string.IsNullOrEmpty(location))
                {
                    throw new BusinessException(Resources.EXT.ControllerLan.Con_LocationCanNotBeEmpty);
                }
                Location locTo = genericMgr.FindById<Location>(location);
                #endregion

                if (string.IsNullOrEmpty(idStr))
                {
                    throw new BusinessException(Resources.EXT.ControllerLan.Con_InspectionDetailCanNotBeEmpty);
                }
                string[] idArr = idStr.Split(',');

                IList<InspectDetail> inspectDetailList = new List<InspectDetail>();
                foreach (string id in idArr)
                {
                    InspectDetail inspetDetail = genericMgr.FindById<InspectDetail>(Convert.ToInt32(id));
                    inspectDetailList.Add(inspetDetail);
                }

                orderMgr.CreateInspectTransfer(locTo, inspectDetailList);
                object obj = new { SuccessMessage = string.Format(Resources.INP.InspectMaster.InspectMaster_Transfered) };
                return Json(obj);
            }
            catch (BusinessException ex)
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 500;
                Response.Write(ex.GetMessages()[0].GetMessageString());
                return Json(null);
            }
        }
Example #11
0
 public void Encode_Decode_With_Binary_Representation()
 {
     var values = new[]
     {
         Tuple.Create<object, byte[], EncodeHandler, DecodeHandler>(1D, new byte[] {0x3f, 0xf0, 0, 0, 0, 0, 0, 0}, TypeCodec.EncodeDouble, TypeCodec.DecodeDouble),
         Tuple.Create<object, byte[], EncodeHandler, DecodeHandler>(2D, new byte[] {0x40, 0, 0, 0, 0, 0, 0, 0}, TypeCodec.EncodeDouble, TypeCodec.DecodeDouble),
         Tuple.Create<object, byte[], EncodeHandler, DecodeHandler>(2.2D, new byte[] {0x40, 1, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9a}, TypeCodec.EncodeDouble, TypeCodec.DecodeDouble),
         Tuple.Create<object, byte[], EncodeHandler, DecodeHandler>(-1D, new byte[] {0xbf, 0xf0, 0, 0, 0, 0, 0, 0}, TypeCodec.EncodeDouble, TypeCodec.DecodeDouble),
         Tuple.Create<object, byte[], EncodeHandler, DecodeHandler>(-1F, new byte[] {0xbf, 0x80, 0, 0}, TypeCodec.EncodeFloat, TypeCodec.DecodeFloat),
         Tuple.Create<object, byte[], EncodeHandler, DecodeHandler>(1.3329F, new byte[] {0x3f, 0xaa, 0x9c, 0x78}, TypeCodec.EncodeFloat, TypeCodec.DecodeFloat)
     };
     foreach (var val in values)
     {
         var encoded = val.Item3(4, null, val.Item1);
         CollectionAssert.AreEqual(val.Item2, encoded);
         Assert.AreEqual(val.Item1, val.Item4(4, null, encoded, null));
     }
 }
        public JsonResult ReleaseCheckListOrder(string checkListOrderNo, string idStr, string isNormalStr, string resultStr)
        {
            try
            {
                CheckListOrderMaster checkListOrderMaster = genericMgr.FindById<CheckListOrderMaster>(checkListOrderNo);


                IList<CheckListOrderDetail> checkListOrderDetailList = genericMgr.FindAll<CheckListOrderDetail>("from CheckListOrderDetail where OrderNo=?", checkListOrderNo);
                if (!string.IsNullOrEmpty(idStr))
                {
                    string[] idArray = idStr.Split(',');
                    string[] isNormalArray = isNormalStr.Split(',');
                    string[] resultArray = resultStr.Split(',');
                    for (int i = 0; i < idArray.Count(); i++)
                    {
                        if (Convert.ToInt32(idArray[i]) > 0)
                        {
                            CheckListOrderDetail checkListOrderDetail = checkListOrderDetailList.Where(p => p.Id == Convert.ToInt32(idArray[i])).FirstOrDefault();

                            checkListOrderDetail.IsNormal = bool.Parse(isNormalArray[i]);
                            checkListOrderDetail.Remark = resultArray[i];

                        }
                    }
                }
                checkListOrderMaster.CheckListOrderDetailList = checkListOrderDetailList.ToList();
                facilityMgr.ReleaseCheckListOrder(checkListOrderMaster);

                object obj = new { SuccessMessage = "巡检单提交成功" };
                return Json(obj);
            }
            catch (BusinessException ex)
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 500;
                Response.Write(ex.GetMessages()[0].GetMessageString());
                return Json(null);
            }
        }
Example #13
0
		/// <summary>
		/// 
		/// </summary>
		/// <param name="numbers"></param>
		/// <param name="alphabet"></param>
		/// <param name="salt"></param>
		/// <param name="minHashLength"></param>
		/// <returns></returns>
		private string Encode(int[] numbers, string alphabet, string salt, int minHashLength = 0)
		{
			var ret = new StringBuilder();

			var seps = ConsistentShuffle(string.Join(string.Empty, this.seps), string.Join("", numbers)).ToArray();
			char lotteryChar = default(char);

			for (var i = 0; i < numbers.Length; i++)
			{
				if (i == 0)
				{
					var lotterySalt = string.Join("-", numbers);
					foreach (var number in numbers) { lotterySalt += string.Concat("-", (number + 1) * 2); }

					var lottery = ConsistentShuffle(alphabet, lotterySalt);
					lotteryChar = lottery[0];
					ret.Append(lotteryChar);
					
					alphabet = string.Concat(lotteryChar, alphabet.Replace(lotteryChar.ToString(), string.Empty));
				}

				alphabet = ConsistentShuffle(alphabet, string.Concat((int)lotteryChar & 12345, salt));
				ret.Append(Hash(numbers[i], alphabet));

				if ((i + 1) < numbers.Length)
				{
					var sepsIndex = (numbers[i] + i) % seps.Length;
					ret.Append(seps[sepsIndex]);
				}
			}

			if (ret.Length < minHashLength)
			{
				var firstIndex = 0;
				for (var i = 0; i < numbers.Length; i++)
				{
					firstIndex += (i + 1) * numbers[i];
				}
				
				var guardIndex = firstIndex % guards.Length;
				var guard = guards[guardIndex];
				ret.Insert(0, guard);

				if (ret.Length < minHashLength)
				{
					guardIndex = (guardIndex + ret.Length) % guards.Length;
					guard = guards[guardIndex];

					ret.Append(guard);
				}
			}

			while (ret.Length < minHashLength)
			{
				var padArray = new [] {(int)alphabet[1], (int)alphabet[0]};
				var padLeft = Encode(padArray, alphabet, salt);
				var padRight = Encode(padArray, alphabet, string.Join(string.Empty, padArray));

				ret.Insert(0, padLeft);
				ret.Append(padRight);

				var excess = ret.Length - minHashLength;
				var r = ret.ToString();

				if (excess > 0)
				{
					ret.Clear();
					ret.Append(r.Substring(excess / 2, minHashLength));
				}
				
				alphabet = ConsistentShuffle(alphabet, salt + ret.ToString());
			}

			return ret.ToString();
		}
Example #14
0
 public void GetClrType_Should_Get_Clr_Type_For_Non_Primitive_Cql_Types()
 {
     var notPrimitive = new []
     {
         Tuple.Create<Type, ColumnTypeCode, IColumnInfo>(typeof(IEnumerable<string>), ColumnTypeCode.List, new ListColumnInfo { ValueTypeCode = ColumnTypeCode.Text}),
         Tuple.Create<Type, ColumnTypeCode, IColumnInfo>(typeof(IEnumerable<int>), ColumnTypeCode.Set, new SetColumnInfo { KeyTypeCode = ColumnTypeCode.Int}),
         Tuple.Create<Type, ColumnTypeCode, IColumnInfo>(typeof(IEnumerable<IEnumerable<DateTimeOffset>>), ColumnTypeCode.List, 
             new ListColumnInfo { ValueTypeCode = ColumnTypeCode.Set, ValueTypeInfo = new SetColumnInfo { KeyTypeCode = ColumnTypeCode.Timestamp}}),
         Tuple.Create<Type, ColumnTypeCode, IColumnInfo>(typeof(IDictionary<string, int>), ColumnTypeCode.Map, 
             new MapColumnInfo { KeyTypeCode = ColumnTypeCode.Text, ValueTypeCode = ColumnTypeCode.Int }),
         Tuple.Create<Type, ColumnTypeCode, IColumnInfo>(typeof(Tuple<string, int, LocalDate>), ColumnTypeCode.Tuple, 
             new TupleColumnInfo(new [] { ColumnTypeCode.Text, ColumnTypeCode.Int, ColumnTypeCode.Date}.Select(c => new ColumnDesc {TypeCode = c})))
     };
     var serializer = NewInstance();
     foreach (var item in notPrimitive)
     {
         var type = serializer.GetClrType(item.Item2, item.Item3);
         Assert.AreEqual(item.Item1, type);
     }
 }
Example #15
0
 public void GetClrType_Should_Get_Clr_Type_For_Primitive_Cql_Types()
 {
     var notPrimitive = new[] { ColumnTypeCode.List, ColumnTypeCode.Set, ColumnTypeCode.Map, ColumnTypeCode.Udt, ColumnTypeCode.Tuple, ColumnTypeCode.Custom };
     var serializer = NewInstance();
     foreach (ColumnTypeCode typeCode in Enum.GetValues(typeof(ColumnTypeCode)))
     {
         if (notPrimitive.Contains(typeCode))
         {
             continue;
         }
         var type = serializer.GetClrType(typeCode, null);
         Assert.NotNull(type);
         if (type.IsValueType)
         {
             Assert.NotNull(serializer.Serialize(Activator.CreateInstance(type)));
         }
     }
 }
Example #16
0
 public void Encode_Decode_With_Binary_Representation()
 {
     var values = new[]
     {
         Tuple.Create<object, byte[]>(1D, new byte[] {0x3f, 0xf0, 0, 0, 0, 0, 0, 0}),
         Tuple.Create<object, byte[]>(2D, new byte[] {0x40, 0, 0, 0, 0, 0, 0, 0}),
         Tuple.Create<object, byte[]>(2.2D, new byte[] {0x40, 1, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9a}),
         Tuple.Create<object, byte[]>(-1D, new byte[] {0xbf, 0xf0, 0, 0, 0, 0, 0, 0}),
         Tuple.Create<object, byte[]>(-1F, new byte[] {0xbf, 0x80, 0, 0}),
         Tuple.Create<object, byte[]>(1.3329F, new byte[] {0x3f, 0xaa, 0x9c, 0x78}),
         Tuple.Create<object, byte[]>("abc", new byte[] {0x61, 0x62, 0x63})
     };
     var serializer = NewInstance();
     foreach (var val in values)
     {
         var encoded = serializer.Serialize(val.Item1);
         CollectionAssert.AreEqual(val.Item2, encoded);
         var padEncoded = new byte[] {0xFF, 0xFA}.Concat(encoded).ToArray();
         Assert.AreEqual(val.Item1, serializer.Deserialize(padEncoded, 2, encoded.Length, serializer.GetCqlTypeForPrimitive(val.Item1.GetType()), null));
     }
 }
Example #17
0
        public void Formula()
        {
            Assert.Inconclusive();

            var model = dynSettings.Controller.DynamoModel;
            var exPath = Path.Combine(GetTestDirectory(), @"core\formula");

            model.Open(Path.Combine(exPath, "formula-test.dyn"));

            var watches = new[]
            {
                "2a8f6086-dd36-49f6-b9c1-dfd5dbc683ea", 
                "226f0d3a-7578-46f8-9f60-9fc24dd82c48",
                "af0ccd4f-9fae-4f66-85eb-e5d58eb15fd8"
            }.Select(guid => model.CurrentWorkspace.NodeFromWorkspace<Watch>(guid));

            dynSettings.Controller.RunExpression(null);

            foreach (var watch in watches)
            {
                Assert.AreEqual(19, watch.CachedValue.Data);
            }
        }
        public JsonResult _BatchDeleteRejectDetail(string rejectNo, string idStr)
        {
            try
            {
                IList<RejectDetail> deletedRejectDetailList = new List<RejectDetail>();
                if (!string.IsNullOrEmpty(idStr))
                {
                    string[] idArray = idStr.Split(',');

                    for (int i = 0; i < idArray.Count(); i++)
                    {

                        RejectDetail noneZeroRejectDetail = base.genericMgr.FindById<RejectDetail>(Convert.ToInt32(idArray[i]));

                        deletedRejectDetailList.Add(noneZeroRejectDetail);

                    }
                }
                inspectMgr.BatchUpdateRejectDetails(rejectNo, null, deletedRejectDetailList);
                object obj = new { SuccessMessage = string.Format("不合格品处理单明细删除成功") };
                return Json(obj);
            }
            catch (BusinessException ex)
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 500;
                Response.Write(ex.GetMessages()[0].GetMessageString());
                return Json(null);
            }
        }
Example #19
0
        public void PrecedenceTest()
        {
            var precedence = new[]
                                 {
                                     new
                                         {
                                             File = "ConfigFileLocator.exe.config",
                                             Contents = appConfigContents,
                                             Output = appConfigOutput
                                         },
                                     new
                                         {
                                             File = "NLog.config",
                                             Contents = nlogConfigContents,
                                             Output = nlogConfigOutput
                                         },
                                     new
                                         {
                                             File = "ConfigFileLocator.exe.nlog",
                                             Contents = appNLogContents,
                                             Output = appNLogOutput
                                         },
                                     new
                                         {
                                             File = "NLog.dll.nlog",
                                             Contents = nlogDllNLogContents,
                                             Output = nlogDllNLogOutput
                                         },
                                 };
            // deploy all files
            foreach (var p in precedence)
            {
                File.WriteAllText(Path.Combine(_tempDirectory, p.File), p.Contents);
            }

            string output;

            // walk files in precedence order and delete config files
            foreach (var p in precedence)
            {
                output = RunTest();
                Assert.Equal(p.Output, output);
                File.Delete(Path.Combine(_tempDirectory, p.File));
            }

            output = RunTest();
            Assert.Equal(missingConfigOutput, output);

        }
Example #20
0
 public void Encode_Decode_TinyInt()
 {
     var values = new[]
     {
         Tuple.Create<sbyte, byte>(-1, 0xff),
         Tuple.Create<sbyte, byte>(-2, 0xfe),
         Tuple.Create<sbyte, byte>(0, 0),
         Tuple.Create<sbyte, byte>(1, 1),
         Tuple.Create<sbyte, byte>(2, 2),
         Tuple.Create<sbyte, byte>(127, 127)
     };
     var serializer = NewInstance();
     foreach (var v in values)
     {
         var encoded = serializer.Serialize(v.Item1);
         CollectionAssert.AreEqual(encoded, new[] { v.Item2 });
         var decoded = (sbyte)serializer.Deserialize(encoded, ColumnTypeCode.TinyInt, null);
         Assert.AreEqual(v.Item1, decoded);
     }
 }
        public JsonResult AddHuRejectDetails(string rejectNo, string idStr)
        {
            try
            {
                #region inspectResultList
                IList<InspectResult> inspectResultList = new List<InspectResult>();

                if (!string.IsNullOrEmpty(idStr))
                {
                    string[] idArray = idStr.Split(',');
                    for (int i = 0; i < idArray.Count(); i++)
                    {

                        InspectResult nonZeroInspectResult = base.genericMgr.FindById<InspectResult>(Convert.ToInt32(idArray[i]));
                        nonZeroInspectResult.CurrentHandleQty = nonZeroInspectResult.TobeHandleQty;
                        inspectResultList.Add(nonZeroInspectResult);

                    }
                }
                #endregion

                if (inspectResultList.Count == 0)
                {
                    throw new BusinessException("明细不能为空");
                }
                inspectMgr.AddRejectDetails(rejectNo, inspectResultList);
                object obj = new { SuccessMessage = string.Format("不合格品处理单明细添加成功") };
                return Json(obj);
            }
            catch (BusinessException ex)
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 500;
                Response.Write(ex.GetMessages()[0].GetMessageString());
                return Json(null);
            }


        }
Example #22
0
        public void Formula()
        {
            var model = ViewModel.Model;
            var exPath = Path.Combine(GetTestDirectory(), @"core\formula");

            ViewModel.OpenCommand.Execute(Path.Combine(exPath, "formula-test.dyn"));

            var watches = new[]
            {
                "2a8f6086-dd36-49f6-b9c1-dfd5dbc683ea", 
                "226f0d3a-7578-46f8-9f60-9fc24dd82c48",
                //"af0ccd4f-9fae-4f66-85eb-e5d58eb15fd8"
            }.Select(guid => model.CurrentWorkspace.NodeFromWorkspace<Watch>(guid));

            ViewModel.Model.RunExpression();

            foreach (var watch in watches)
            {
                Assert.AreEqual(19, watch.CachedValue);
            }
        }
        public JsonResult CreateHuReturnOrder(string flow, string idStr)
        {
            try
            {
                #region 检查路线
                if (string.IsNullOrEmpty(flow))
                {
                    throw new BusinessException("路线不能为空");
                }
                FlowMaster flowMaster = base.genericMgr.FindById<FlowMaster>(flow);
                #endregion

                if (string.IsNullOrEmpty(idStr))
                {
                    throw new BusinessException("退货明细不能为空");
                }
                string[] idArr = idStr.Split(',');
               
                IList<RejectDetail> rejectDetailList = new List<RejectDetail>();
                foreach (string id in idArr)
                {
                    RejectDetail rejectDetail = base.genericMgr.FindById<RejectDetail>(Convert.ToInt32(id));
                    rejectDetail.CurrentHandleQty = rejectDetail.HandleQty;
                    rejectDetailList.Add(rejectDetail);
                }
               
                orderMgr.CreateReturnOrder(flowMaster, rejectDetailList);
                object obj = new { SuccessMessage = string.Format(Resources.INP.RejectMaster.RejectMaster_Returned) };
                return Json(obj);
            }
            catch (BusinessException ex)
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 500;
                Response.Write(ex.GetMessages()[0].GetMessageString());
                return Json(null);
            }
        }
 private Dictionary<string, object> ToTaskData(SC.IDictionary dic)
 {
     Dictionary<string, object> ret = new Dictionary<string, object>();
     foreach (string k in dic.Keys)
     {
         object v = dic[k];
         if (v is SC.IDictionary) v = ToTaskData((SC.IDictionary)v);
         ret[k] = v;
     }
     return ret;
 }
        public JsonResult ReceiveIpMaster(string idStr, string qtyStr, string externalIpNo, string ipNo)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(externalIpNo))
                {
                    throw new BusinessException(Resources.EXT.ControllerLan.Con_ExternalOrderNumberCanNotBeEmpty);
                }
                if (!string.IsNullOrEmpty(ipNo))
                {
                    IpMaster ipMaster = genericMgr.FindById<IpMaster>(ipNo);
                    ipMaster.ExternalIpNo = externalIpNo;
                    genericMgr.Update(ipMaster);
                }

                IList<IpDetail> ipDetailList = new List<IpDetail>();
                if (!string.IsNullOrEmpty(idStr))
                {
                    string[] idArray = idStr.Split(',');
                    string[] qtyArray = qtyStr.Split(',');

                    for (int i = 0; i < idArray.Count(); i++)
                    {
                        if (Convert.ToDecimal(qtyArray[i]) > 0)
                        {
                            IpDetail ipDetail = genericMgr.FindById<IpDetail>(Convert.ToInt32(idArray[i]));
                            IpDetailInput input = new IpDetailInput();
                            input.ReceiveQty = Convert.ToDecimal(qtyArray[i]);

                            ipDetail.AddIpDetailInput(input);
                            ipDetailList.Add(ipDetail);
                        }
                    }
                }
                if (ipDetailList.Count() == 0)
                {
                    throw new BusinessException(Resources.EXT.ControllerLan.Con_ReceiveDetailCanNotBeEmpty);
                }

                ReceiptMaster receiptMaster = orderMgr.ReceiveIp(ipDetailList);
                object obj = new { SuccessMessage = string.Format(Resources.ORD.IpMaster.IpMaster_Received, ipDetailList[0].IpNo, receiptMaster.ReceiptNo), SuccessData = ipDetailList[0].IpNo };
                return Json(obj);
            }
            catch (BusinessException ex)
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 500;
                Response.Write(ex.GetMessages()[0].GetMessageString());
                return Json(null);
            }
        }
        public JsonResult AddHuRejectDetails(string rejectNo, string idStr)
        {
            try
            {
                #region inspectResultList
                IList<InspectResult> inspectResultList = new List<InspectResult>();

                if (!string.IsNullOrEmpty(idStr))
                {
                    string[] idArray = idStr.Split(',');
                    for (int i = 0; i < idArray.Count(); i++)
                    {

                        InspectResult nonZeroInspectResult = genericMgr.FindById<InspectResult>(Convert.ToInt32(idArray[i]));
                        nonZeroInspectResult.CurrentHandleQty = nonZeroInspectResult.TobeHandleQty;
                        inspectResultList.Add(nonZeroInspectResult);

                    }
                }
                #endregion

                if (inspectResultList.Count == 0)
                {
                    throw new BusinessException(Resources.EXT.ControllerLan.Con_DetailCanNotBeEmpty);
                }
                inspectMgr.AddRejectDetails(rejectNo, inspectResultList);
                object obj = new { SuccessMessage = string.Format(Resources.EXT.ControllerLan.Con_InqualifiedGoodsProcessOrderDetailAddedSuccessfully) };
                return Json(obj);
            }
            catch (BusinessException ex)
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 500;
                Response.Write(ex.GetMessages()[0].GetMessageString());
                return Json(null);
            }


        }
        public JsonResult _BatchSaveRejectDetail(string rejectNo, string idStr, string qtyStr)
        {
            try
            {
                IList<RejectDetail> updatedRejectDetailList = new List<RejectDetail>();
                if (!string.IsNullOrEmpty(idStr))
                {
                    string[] idArray = idStr.Split(',');
                    string[] qtyArray = qtyStr.Split(',');
                    for (int i = 0; i < idArray.Count(); i++)
                    {

                        RejectDetail noneZeroRejectDetail = genericMgr.FindById<RejectDetail>(Convert.ToInt32(idArray[i]));
                        noneZeroRejectDetail.CurrentHandleQty = Convert.ToDecimal(qtyArray[i]);
                        updatedRejectDetailList.Add(noneZeroRejectDetail);

                    }
                }

                inspectMgr.BatchUpdateRejectDetails(rejectNo, updatedRejectDetailList, null);

                object obj = new { SuccessMessage = string.Format(Resources.EXT.ControllerLan.Con_InqualifiedGoodsProcessOrderDetailSavedSuccessfully) };
                return Json(obj);


            }
            catch (BusinessException ex)
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 500;
                Response.Write(ex.GetMessages()[0].GetMessageString());
                return Json(null);
            }
        }
        public JsonResult CreateHuReturnOrder(string flow, string idStr, bool isInspect)
        {
            try
            {
                #region 检查路线
                if (string.IsNullOrEmpty(flow))
                {
                    throw new BusinessException(Resources.EXT.ControllerLan.Con_FlowCanNotBeEmpty);
                }
                FlowMaster flowMaster = genericMgr.FindById<FlowMaster>(flow);
                #endregion

                if (string.IsNullOrEmpty(idStr))
                {
                    throw new BusinessException(Resources.EXT.ControllerLan.Con_ReturnGoodsDetailCanNotBeEmpty);
                }
                string[] idArr = idStr.Split(',');
                string orderNo = string.Empty;
                if (isInspect)
                {
                    var inspectResultList = genericMgr.FindAllIn<InspectResult>(
                        @"select r from InspectResult r where Id in(?", idArr.Select(p => (object)(int.Parse(p))))
                        .Select(p =>
                        {
                            p.CurrentHandleQty = p.JudgeQty;
                            return p;
                        }).ToList();
                    orderNo = orderMgr.CreateReturnOrder(flowMaster, inspectResultList).OrderNo;

                }
                else
                {
                    IList<RejectDetail> rejectDetailList = new List<RejectDetail>();
                    foreach (string id in idArr)
                    {
                        RejectDetail rejectDetail = genericMgr.FindById<RejectDetail>(Convert.ToInt32(id));
                        rejectDetail.CurrentHandleQty = rejectDetail.HandleQty;
                        rejectDetailList.Add(rejectDetail);
                    }
                    orderNo = orderMgr.CreateReturnOrder(flowMaster, rejectDetailList).OrderNo;
                }
                SaveSuccessMessage(Resources.INP.RejectMaster.RejectMaster_Returned);
                object obj = new
                {
                    OrderNo = orderNo
                };
                return Json(obj);
            }
            catch (Exception ex)
            {
                SaveErrorMessage(ex);
                return Json(null);
            }
        }
 public void Encode_Decode_Date()
 {
     var values = new[]
     {
         new LocalDate(2010, 4, 29),
         new LocalDate(2005, 8, 5),
         new LocalDate(0, 3, 12),
         new LocalDate(-10, 2, 4),
         new LocalDate(5881580, 7, 11),
         new LocalDate(-5877641, 6, 23)
     };
     foreach (var v in values)
     {
         var encoded = TypeCodec.EncodeDate(4, null, v);
         var decoded = (LocalDate)TypeCodec.DecodeDate(4, null, encoded, null);
         Assert.AreEqual(v, decoded);
     }
 }
        public JsonResult AdjustIpGap(string idStr, string qtyStr, com.Sconit.CodeMaster.IpGapAdjustOption gapAdjustOption)
        {
            try
            {
                IList<IpDetail> ipDetailList = new List<IpDetail>();
                if (!string.IsNullOrEmpty(idStr))
                {
                    string[] idArray = idStr.Split(',');
                    string[] qtyArray = qtyStr.Split(',');

                    for (int i = 0; i < idArray.Count(); i++)
                    {
                        if (Convert.ToDecimal(qtyArray[i]) > 0)
                        {
                            IpDetail ipDetail = genericMgr.FindById<IpDetail>(Convert.ToInt32(idArray[i]));
                            IpDetailInput input = new IpDetailInput();
                            input.ReceiveQty = Convert.ToDecimal(qtyArray[i]);
                            ipDetail.AddIpDetailInput(input);
                            ipDetailList.Add(ipDetail);
                        }
                    }
                }
                if (ipDetailList.Count() == 0)
                {
                    throw new BusinessException(Resources.EXT.ControllerLan.Con_AdjustDetailCanNotBeEmpty);
                }

                orderMgr.AdjustIpGap(ipDetailList, gapAdjustOption);
                object obj = new { SuccessMessage = string.Format(Resources.ORD.IpMaster.IpMaster_AsnTemplate, ipDetailList[0].IpNo), SuccessData = ipDetailList[0].IpNo };
                return Json(obj);


            }
            catch (BusinessException ex)
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 500;
                Response.Write(ex.GetMessages()[0].GetMessageString());
                return Json(null);
            }
        }