public void GivenVariable_CreateObjectInputs_ShouldCreateObjectInput_OnTheInnerEnvToo()
        {
            var commonDataUtils = new CommonDataUtils();

            Assert.IsNotNull(commonDataUtils);

            var outerExeEnv = new ExecutionEnvironment();
            var recUsername = "******";

            outerExeEnv.Assign(recUsername, "Sanele", 0);
            var definitions = new List <IDev2Definition>
            {
                new Dev2Definition("Name", "UserName", "Sanele", false, "NoName", false, recUsername)
            };

            Assert.IsNotNull(definitions);
            var innerExecEnv        = new ExecutionEnvironment();
            var prObj               = new PrivateObject(innerExecEnv);
            var warewolfEnvironment = prObj.GetField("_env") as DataStorage.WarewolfEnvironment;

            Assert.IsTrue(warewolfEnvironment != null && warewolfEnvironment.Scalar.Count == 0);
            commonDataUtils.CreateObjectInputs(outerExeEnv, definitions, innerExecEnv, 0);
            warewolfEnvironment = prObj.GetField("_env") as DataStorage.WarewolfEnvironment;
            Assert.IsTrue(warewolfEnvironment != null && warewolfEnvironment.Scalar.Count == 1);
        }
Exemplo n.º 2
0
        public void AddMissingFileDirectoryParts_GivenDestinationPathIsDirectory_SourcePathIsDirectory()
        {
            const string file    = "C:\\Parent\\a.txt";
            const string dstfile = "C:\\Parent\\Child\\";
            var          srcPath = new Mock <IActivityIOPath>();

            srcPath.Setup(path => path.Path).Returns(file);
            var dstPath = new Mock <IActivityIOPath>();

            dstPath.Setup(path => path.Path).Returns(dstfile);
            var dev2CrudOperationTO = new Dev2CRUDOperationTO(true);

            var src = new Mock <IActivityIOOperationsEndPoint>();

            src.Setup(p => p.CreateDirectory(It.IsAny <IActivityIOPath>(), dev2CrudOperationTO)).Returns(true);
            src.Setup(p => p.IOPath).Returns(srcPath.Object);
            src.Setup(p => p.PathSeperator()).Returns("\\");
            src.Setup(p => p.PathIs(srcPath.Object)).Returns(enPathType.Directory);

            var dst = new Mock <IActivityIOOperationsEndPoint>();

            dst.Setup(p => p.CreateDirectory(It.IsAny <IActivityIOPath>(), dev2CrudOperationTO)).Returns(true);
            dst.Setup(p => p.IOPath).Returns(dstPath.Object);
            dst.Setup(p => p.PathSeperator()).Returns("\\");
            dst.Setup(p => p.PathIs(dstPath.Object)).Returns(enPathType.Directory);

            var commonDataUtils = new CommonDataUtils();

            commonDataUtils.AddMissingFileDirectoryParts(src.Object, dst.Object);
            dstPath.VerifySet(p => p.Path = @"C:\Parent\Child\a.txt");
        }
Exemplo n.º 3
0
        public void ValidateSourceAndDestinationPaths_GivenIsPathRooted_ShouldReturnFalse()
        {
            const string txt     = "C:\\Home\\a.txt";
            var          srcPath = new Mock <IActivityIOPath>();

            srcPath.Setup(path => path.Path).Returns(txt);
            var dstPath = new Mock <IActivityIOPath>();

            dstPath.Setup(path => path.Path).Returns("some relative path");
            var dev2CrudOperationTO = new Dev2CRUDOperationTO(true);

            var src = new Mock <IActivityIOOperationsEndPoint>();

            src.Setup(p => p.CreateDirectory(It.IsAny <IActivityIOPath>(), dev2CrudOperationTO)).Returns(true);
            src.Setup(p => p.IOPath).Returns(srcPath.Object);
            src.Setup(p => p.PathSeperator()).Returns("\\");

            var dst = new Mock <IActivityIOOperationsEndPoint>();

            dst.Setup(p => p.CreateDirectory(It.IsAny <IActivityIOPath>(), dev2CrudOperationTO)).Returns(true);
            dst.Setup(p => p.IOPath).Returns(dstPath.Object);
            dst.Setup(p => p.PathSeperator()).Returns("\\");

            var commonDataUtils = new CommonDataUtils();

            commonDataUtils.ValidateSourceAndDestinationPaths(src.Object, dst.Object);
        }
Exemplo n.º 4
0
        public void GenerateDefsFromDataListForDebug_GivenNullValue()
        {
            const string trueString      = "True";
            var          datalist        = string.Format("<DataList><Person Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"Both\" ><Name Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"Input\" /></Person></DataList>", trueString);
            var          commonDataUtils = new CommonDataUtils();
            var          results         = commonDataUtils.GenerateDefsFromDataListForDebug(datalist, enDev2ColumnArgumentDirection.Both);

            Assert.AreEqual(1, results.Count);
            Assert.AreEqual("Name", results[0].Name);
        }
Exemplo n.º 5
0
        static IList <string> MakeDirectoryParts(IActivityIOPath path, string splitter)
        {
            string[] tmp;

            IList <string> result      = new List <string>();
            var            builderPath = new StringBuilder();

            var splitOn = splitter.ToCharArray();

            if (CommonDataUtils.IsUncFileTypePath(path.Path))
            {
                var uncPath     = path.Path.Substring(2);
                var splitValues = uncPath.Split(splitOn).ToList();
                builderPath.Append(@"\\");
                builderPath.Append(splitValues[0]);
                builderPath.Append(@"\");
                splitValues.RemoveAt(0);
                tmp = splitValues.ToArray();
            }
            else if (CommonDataUtils.IsNotFtpTypePath(path))
            {
                tmp = path.Path.Split(splitOn);
            }
            else
            {
                var splitValues = path.Path.Split(new[] { @"://" }, StringSplitOptions.RemoveEmptyEntries).ToList();
                builderPath.Append(splitValues[0]);
                builderPath.Append(@"://");
                splitValues.RemoveAt(0);

                var newPath = string.Join(@"/", splitValues);
                tmp = newPath.Split(splitOn);
            }

            var candiate = tmp[tmp.Length - 1];
            var len      = tmp.Length;

            if (candiate.Contains(@"*.") || candiate.Contains(@"."))
            {
                len = tmp.Length - 1;
            }

            for (var i = 0; i < len; i++)
            {
                if (!string.IsNullOrWhiteSpace(tmp[i]))
                {
                    builderPath.Append(tmp[i]);
                    builderPath.Append(splitter);

                    result.Add(builderPath.ToString());
                }
            }
            return(result);
        }
        public void GivenNullDestination_AddMissingFileDirectoryParts_ShouldRetunError()
        {
            var          commonDataUtils = new CommonDataUtils();
            var          tempFile        = Path.GetTempFileName();
            const string newFileName     = "ZippedTempFile";
            var          zipPathName     = Path.GetTempPath() + newFileName + ".zip";
            IActivityIOOperationsEndPoint scrEndPoint = ActivityIOFactory.CreateOperationEndPointFromIOPath(ActivityIOFactory.CreatePathFromString(tempFile, string.Empty, null, true, ""));
            IActivityIOOperationsEndPoint dstEndPoint = ActivityIOFactory.CreateOperationEndPointFromIOPath(ActivityIOFactory.CreatePathFromString(zipPathName, string.Empty, null, true, ""));

            Assert.IsNotNull(commonDataUtils);
            dstEndPoint.IOPath.Path = string.Empty;
            commonDataUtils.AddMissingFileDirectoryParts(scrEndPoint, dstEndPoint);
        }
Exemplo n.º 7
0
        public void CreateRecordSetsInputs_GivenNullValue()
        {
            var outerEnvironment = new Mock <IExecutionEnvironment>();
            var inputRecSets     = new Mock <IRecordSetCollection>();
            var mockedInput      = new Mock <IRecordSetDefinition>();
            var nameColumn       = new Mock <IDev2Definition>();
            var ageColumn        = new Mock <IDev2Definition>();
            var input1           = new Mock <IDev2Definition>();
            var input2           = new Mock <IDev2Definition>();

            mockedInput.Setup(p => p.SetName).Returns("Person");

            nameColumn.Setup(p => p.Name).Returns("Name");
            nameColumn.Setup(p => p.IsRecordSet).Returns(true);
            nameColumn.Setup(p => p.RecordSetName).Returns("Person");
            ageColumn.Setup(p => p.Name).Returns("Age");
            ageColumn.Setup(p => p.IsRecordSet).Returns(true);
            ageColumn.Setup(p => p.RecordSetName).Returns("Person");

            mockedInput.Setup(p => p.Columns).Returns(new List <IDev2Definition> {
                nameColumn.Object, ageColumn.Object
            });
            inputRecSets.Setup(p => p.RecordSets).Returns(new List <IRecordSetDefinition> {
                mockedInput.Object
            });


            input1.Setup(p => p.IsRecordSet).Returns(true);
            input1.Setup(p => p.MapsTo).Returns("[[Person().Name]]");
            input1.Setup(p => p.RecordSetName).Returns("Person");
            input2.Setup(p => p.IsRecordSet).Returns(true);
            input2.Setup(p => p.MapsTo).Returns("[[Person().Age]]");
            input2.Setup(p => p.RecordSetName).Returns("Person");

            var inputs = new List <IDev2Definition>
            {
                input1.Object, input2.Object
            };

            var env             = new Mock <IExecutionEnvironment>();
            int update          = 0;
            var commonDataUtils = new CommonDataUtils();

            commonDataUtils.CreateRecordSetsInputs(outerEnvironment.Object, inputRecSets.Object, inputs, env.Object, update);
            env.Verify(p => p.AssignDataShape("[[Person().Name]]"), Times.AtLeastOnce);
            env.Verify(p => p.AssignDataShape("[[Person().Age]]"), Times.AtLeastOnce);
        }
Exemplo n.º 8
0
        public static DBTranSet Save(DBTranSet req)
        {
            bool isTran = false;

            try
            {
                if (req == null)
                {
                    throw new Exception("처리할 요청이 정확하지 않습니다.");
                }

                if (req.TranList == null || req.TranList.Length == 0)
                {
                    throw new Exception("처리할 데이터가 없습니다.");
                }

                DaoFactory.Instance.BeginTransaction();
                isTran = true;

                try
                {
                    object product_id   = null;
                    object reg_id       = null;
                    string product_code = string.Empty;

                    //상품정보 저장
                    if (req.TranList.Length > 0)
                    {
                        if (req.TranList[0].Data == null)
                        {
                            throw new Exception("상품정보를 저장할 데이터가 존재하지 않습니다.");
                        }

                        DataMap data = req.TranList[0].Data as DataMap;
                        data.SetValue("INS_USER", req.UserId);

                        if (string.IsNullOrEmpty(data.GetValue("PRODUCT_CODE").ToStringNullToEmpty()))
                        {
                            product_code = CommonDataUtils.GetProductCode(data.GetValue("PRODUCT_TYPE").ToString());
                            data.SetValue("PRODUCT_CODE", product_code);
                        }

                        if (data.GetValue("ROWSTATE").ToStringNullToEmpty() == "INSERT")
                        {
                            product_id = DaoFactory.Instance.Insert("InsertProduct", data);
                        }
                        else if (data.GetValue("ROWSTATE").ToStringNullToEmpty() == "UPDATE")
                        {
                            DaoFactory.Instance.Update("UpdateProduct", data);
                            product_id = data.GetValue("PRODUCT_ID");
                        }
                        else if (data.GetValue("ROWSTATE").ToStringNullToEmpty() == "DELETE")
                        {
                            DaoFactory.Instance.Update("DeleteProduct", data);
                            product_id = data.GetValue("PRODUCT_ID");
                        }
                        req.TranList[0].ErrorNumber  = 0;
                        req.TranList[0].ErrorMessage = "SUCCESS";
                        req.TranList[0].ReturnValue  = product_id;
                    }

                    //원부자재정보 저장
                    if (req.TranList.Length > 1)
                    {
                        if (req.TranList[1].Data != null && (req.TranList[1].Data as DataTable).Rows.Count > 0)
                        {
                            IList <DataMap> list = (req.TranList[1].Data as DataTable).ToDataMapList();
                            foreach (DataMap map in list)
                            {
                                map.SetValue("PRODUCT_ID", product_id);
                                map.SetValue("INS_USER", req.UserId);

                                if (map.GetValue("ROWSTATE").ToStringNullToEmpty() == "INSERT")
                                {
                                    reg_id = DaoFactory.Instance.Insert("InsertProductMaterial", map);
                                }
                                else if (map.GetValue("ROWSTATE").ToStringNullToEmpty() == "UPDATE")
                                {
                                    DaoFactory.Instance.Update("UpdateProductMaterial", map);
                                    reg_id = map.GetValue("REG_ID");
                                }
                                else if (map.GetValue("ROWSTATE").ToStringNullToEmpty() == "DELETE")
                                {
                                    DaoFactory.Instance.Update("DeleteProductMaterial", map);
                                    reg_id = map.GetValue("REG_ID");
                                }
                            }
                            req.TranList[1].ErrorNumber  = 0;
                            req.TranList[1].ErrorMessage = "SUCCESS";
                            req.TranList[1].ReturnValue  = product_id;
                        }
                    }

                    if (isTran)
                    {
                        DaoFactory.Instance.CommitTransaction();
                    }
                }
                catch (Exception ex)
                {
                    if (isTran)
                    {
                        DaoFactory.Instance.RollBackTransaction();
                    }

                    throw new Exception(ex.Message);
                }
                return(req);
            }
            catch (Exception ex)
            {
                req.ErrorNumber  = ex.HResult;
                req.ErrorMessage = ex.Message;
                return(req);
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// Save
        /// 데이터 저장(Insert, Update)
        /// </summary>
        /// <param name="req">WasRequest</param>
        /// <returns>WasRequest</returns>
        public static DBTranSet Save(DBTranSet req)
        {
            bool isTran = false;

            try
            {
                if (req == null)
                {
                    throw new Exception("처리할 요청이 정확하지 않습니다.");
                }

                if (req.TranList == null || req.TranList.Length == 0)
                {
                    throw new Exception("처리할 데이터가 없습니다.");
                }

                DaoFactory.Instance.BeginTransaction();
                isTran = true;

                try
                {
                    object purc_id = null;
                    object purc_no = null;
                    object item_id = null;

                    //마스터저장
                    if (req.TranList.Length > 0)
                    {
                        if (req.TranList[0].Data == null)
                        {
                            throw new Exception("저장할 데이터가 존재하지 않습니다.");
                        }

                        DataMap data = req.TranList[0].Data as DataMap;
                        data.SetValue("INS_USER", req.UserId);

                        if (string.IsNullOrEmpty(data.GetValue("PURC_NO").ToStringNullToEmpty()))
                        {
                            purc_no = CommonDataUtils.GetPurcNo();
                            data.SetValue("PURC_NO", purc_no);
                        }

                        if (data.GetValue("ROWSTATE").ToStringNullToEmpty() == "INSERT")
                        {
                            purc_id = DaoFactory.Instance.Insert("InsertPurcTran", data);
                        }
                        else if (data.GetValue("ROWSTATE").ToStringNullToEmpty() == "UPDATE")
                        {
                            DaoFactory.Instance.Update("UpdatePurcTran", data);
                            purc_id = data.GetValue("PURC_ID");
                        }
                        req.TranList[0].ErrorNumber  = 0;
                        req.TranList[0].ErrorMessage = "SUCCESS";
                        req.TranList[0].ReturnValue  = purc_id;
                    }

                    //구매상품내역 저장
                    if (req.TranList.Length > 1)
                    {
                        if (req.TranList[1].Data != null && (req.TranList[1].Data as DataTable).Rows.Count > 0)
                        {
                            IList <DataMap> list = (req.TranList[1].Data as DataTable).ToDataMapList();
                            foreach (DataMap map in list)
                            {
                                map.SetValue("PURC_ID", purc_id);
                                map.SetValue("INS_USER", req.UserId);

                                if (map.GetValue("ROWSTATE").ToStringNullToEmpty() == "INSERT")
                                {
                                    item_id = DaoFactory.Instance.Insert("InsertPurcTranItem", map);

                                    //재고반영
                                    DaoFactory.Instance.QueryForObject <int>("BatchInventory", new DataMap()
                                    {
                                        { "TRAN_ID", purc_id },
                                        { "TRAN_TP", "PC" },
                                        { "REG_TP", "II" },
                                        { "ITEM_ID", item_id },
                                        { "INS_USER", map.GetValue("INS_USER") }
                                    });
                                }
                                else if (map.GetValue("ROWSTATE").ToStringNullToEmpty() == "UPDATE")
                                {
                                    item_id = map.GetValue("ITEM_ID");

                                    //재고반영(-)
                                    DaoFactory.Instance.QueryForObject <int>("BatchInventory", new DataMap()
                                    {
                                        { "TRAN_ID", purc_id },
                                        { "TRAN_TP", "PC" },
                                        { "REG_TP", "UD" },
                                        { "ITEM_ID", item_id },
                                        { "INS_USER", map.GetValue("INS_USER") }
                                    });

                                    //구매내역 수정
                                    DaoFactory.Instance.Update("UpdatePurcTranItem", map);

                                    //재고반영(+)
                                    DaoFactory.Instance.QueryForObject <int>("BatchInventory", new DataMap()
                                    {
                                        { "TRAN_ID", purc_id },
                                        { "TRAN_TP", "PC" },
                                        { "REG_TP", "UI" },
                                        { "ITEM_ID", item_id },
                                        { "INS_USER", map.GetValue("INS_USER") }
                                    });
                                }
                                else if (map.GetValue("ROWSTATE").ToStringNullToEmpty() == "DELETE")
                                {
                                    item_id = map.GetValue("ITEM_ID");

                                    //재고반영
                                    DaoFactory.Instance.QueryForObject <int>("BatchInventory", new DataMap()
                                    {
                                        { "TRAN_ID", purc_id },
                                        { "TRAN_TP", "PC" },
                                        { "REG_TP", "DD" },
                                        { "ITEM_ID", item_id },
                                        { "INS_USER", map.GetValue("INS_USER") }
                                    });

                                    DaoFactory.Instance.Update("DeletePurcTranItem", map);
                                }
                            }
                            req.TranList[1].ErrorNumber  = 0;
                            req.TranList[1].ErrorMessage = "SUCCESS";
                            req.TranList[1].ReturnValue  = item_id;
                        }
                    }

                    if (isTran)
                    {
                        DaoFactory.Instance.CommitTransaction();
                    }
                }
                catch (Exception ex)
                {
                    if (isTran)
                    {
                        DaoFactory.Instance.RollBackTransaction();
                    }

                    throw new Exception(ex.Message);
                }
                return(req);
            }
            catch (Exception ex)
            {
                req.ErrorNumber  = ex.HResult;
                req.ErrorMessage = ex.Message;
                return(req);
            }
        }