예제 #1
0
        public static Data.Operation Load(string source)
        {
            Operate op = null;
            var     bf = new BinaryFormatter();

            using (FileStream fs = new FileStream(source, FileMode.Open, FileAccess.Read))
            {
                op = bf.Deserialize(fs) as Operate;
            }
            var newop = new Data.Operation(op.Index, op.RewindArray);

            foreach (var dest in op.DestArray)
            {
                newop.Data.AddDestination(dest.LinkKey, new Bright.Data.Destination(dest.LinkKey, dest.Dest));
            }
            foreach (var elem in op.ElementArray)
            {
                var ne = new Bright.Data.GroupingElement(elem.Source)
                {
                    DistributionMode = elem.DistributionMode
                };
                foreach (var dpath in elem.Dest)
                {
                    ne.Destinations.Add(new Bright.Data.GroupingElement.DestData(dpath));
                }
                newop.Data.AddElement(ne);
            }
            return(newop);
        }
예제 #2
0
        public static void Save(Data.Operation oper, string dest)
        {
            var dat = new Operate();

            dat.Index       = oper.Index;
            dat.RewindArray = oper.GetRewindStack();
            List <Operate.DestData> dd = new List <Operate.DestData>();

            foreach (var d in oper.Data.GetDestinationsKeys())
            {
                dd.Add(new Operate.DestData()
                {
                    LinkKey = d, Dest = oper.Data.GetDestination(d).DestPath
                });
            }
            dat.DestArray = dd.ToArray();
            List <Operate.Element> el = new List <Operate.Element>();

            foreach (var e in oper.Data.GetElementsArray())
            {
                var ds = from ar in e.Destinations
                         select ar.Destination;
                el.Add(new Operate.Element()
                {
                    Dest = ds.ToArray <string>(), Source = e.ImageSourcePath, DistributionMode = e.DistributionMode
                });
            }
            dat.ElementArray = el.ToArray();
            var bf = new BinaryFormatter();

            using (FileStream fs = new FileStream(dest, FileMode.Create, FileAccess.ReadWrite))
            {
                bf.Serialize(fs, dat);
            }
        }
        public async Task Test_Calculate_Subtraction_1()
        {
            Data.Operation operation = new Data.Operation()
            {
                NumberA       = 98,
                NumberB       = 2,
                OperationType = Data.OperationType.Subtraction
            };

            var result = await _valueRepo.CalCulater(operation);

            Assert.Equal(96, result);
        }
        public async Task Test_Calculate_Add()
        {
            Data.Operation operation = new Data.Operation()
            {
                NumberA       = 1,
                NumberB       = 2,
                OperationType = Data.OperationType.Addition
            };

            var result = await _valueRepo.CalCulater(operation);

            Assert.Equal(3, result);
        }
예제 #5
0
 public static Data.Operation Load(string source)
 {
     Operate op = null;
     var bf = new BinaryFormatter();
     using (FileStream fs = new FileStream(source, FileMode.Open, FileAccess.Read))
     {
         op = bf.Deserialize(fs) as Operate;
     }
     var newop = new Data.Operation(op.Index, op.RewindArray);
     foreach (var dest in op.DestArray)
     {
         newop.Data.AddDestination(dest.LinkKey, new Bright.Data.Destination(dest.LinkKey, dest.Dest));
     }
     foreach (var elem in op.ElementArray)
     {
         var ne = new Bright.Data.GroupingElement(elem.Source) { DistributionMode = elem.DistributionMode };
         foreach (var dpath in elem.Dest)
             ne.Destinations.Add(new Bright.Data.GroupingElement.DestData(dpath));
         newop.Data.AddElement(ne);
     }
     return newop;
 }
예제 #6
0
        public Data.Operation GetOperationData()
        {
            Core.Config.StateConfig.PrevSetupData = GetSetupData();
            var           op      = new Data.Operation();
            var           dirs    = targetList.Items.Cast <string>();
            List <string> extents = new List <string>();

            foreach (var ext in Subsystem.ImageReader.Instance.GetSusieAcceptExt())
            {
                if (ext.Contains('.'))
                {
                    extents.Add(ext.Split('.')[1].ToUpper());
                }
                else
                {
                    extents.Add(ext.ToUpper());
                }
            }
            foreach (var ext in Subsystem.ImageReader.Instance.GetSystemAcceptExt())
            {
                if (ext.Contains('.'))
                {
                    extents.Add(ext.Split('.')[1].ToUpper());
                }
                else
                {
                    extents.Add(ext.ToUpper());
                }
            }
            for (int i = 0; i < targetList.Items.Count; i++)
            {
                var dir = targetList.Items[i] as string;
                try
                {
                    foreach (var f in targetList.CheckedIndices.Contains(i)?
                             K.Snippets.Files.GetAllFiles(dir):
                             Directory.GetFiles(dir))
                    {
                        var ext = Path.GetExtension(f);
                        if (String.IsNullOrEmpty(ext))
                        {
                            continue;
                        }
                        ext = ext.ToUpper().Substring(1);
                        if (extents.Contains(ext))
                        {
                            op.Data.AddElement(f);
                        }
                    }
                }
                catch (UnauthorizedAccessException uae)
                {
                    MessageBox.Show(
                        "ディレクトリ " + dir + "へのアクセスが拒否されたため、振り分けリストに追加できませんでした。" + Environment.NewLine +
                        uae.Message,
                        "アクセスエラー", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                }
            }
            List <Keys> empties = new List <Keys>();

            foreach (var k in destinations.Keys)
            {
                if (String.IsNullOrEmpty(destinations[k]))
                {
                    empties.Add(k);
                }
            }
            foreach (var k in empties)
            {
                destinations.Remove(k);
            }
            if (op.Data.ElementsLength == 0)
            {
                return(null);
            }
            op.Data.SetDestinations(destinations, false);
            return(op);
        }