예제 #1
0
        private void MainForm_Shown(object sender, EventArgs e)
        {
            InitServersView();
            RefreshServers();

            LoadV2ray();

            //自动从网络同步本地时间
            if (config.autoSyncTime)
            {
                CDateTime.SetLocalTime();
            }

            ChangePACButtonStatus(config.listenerType);
        }
예제 #2
0
        protected void grvData_HtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs e)
        {
            if (e.CellValue != null)
            {
                string toolTip = Environment.NewLine +
                                 "Mô tả: " + grvData.GetRowValues(e.VisibleIndex, "Description").ToString() + Environment.NewLine + Environment.NewLine +
                                 "Mật khẩu: " + grvData.GetRowValues(e.VisibleIndex, "ContestPassword").ToString() + Environment.NewLine + Environment.NewLine +
                                 "Sửa gần nhất: " + DateTime.Parse(grvData.GetRowValues(e.VisibleIndex, "ModifiedOn").ToString()).ToString("dd/MM/yyyy") + Environment.NewLine + Environment.NewLine +
                                 "Tạo bởi: " + grvData.GetRowValues(e.VisibleIndex, "FullName").ToString() + Environment.NewLine;
                //+ e.CellValue.ToString();


                if (grvData.GetRowValues(e.VisibleIndex, "StartTime") != null)
                {
                    try
                    {
                        toolTip += "Bắt đầu: " + DateTime.Parse(grvData.GetRowValues(e.VisibleIndex, "StartTime").ToString()).ToString("HH:mm, dd/MM/yyyy") + Environment.NewLine + Environment.NewLine;
                    }
                    catch (Exception)
                    {
                    }
                }
                if (grvData.GetRowValues(e.VisibleIndex, "EndTime") != null)
                {
                    try
                    {
                        toolTip += "Kết thúc: " + DateTime.Parse(grvData.GetRowValues(e.VisibleIndex, "EndTime").ToString()).ToString("HH:mm, dd/MM/yyyy") + Environment.NewLine + Environment.NewLine;
                    }
                    catch (Exception)
                    {
                    }
                }


                if (e.DataColumn.FieldName == "StartTime" || e.DataColumn.FieldName == "EndTime")
                {
                    try
                    {
                        DateTime dt = DateTime.Parse(e.CellValue.ToString());
                        e.Cell.Text = CDateTime.getTimeNoti(dt);
                    }
                    catch
                    {
                    }
                }
                e.Cell.ToolTip = toolTip;
            }
        }
예제 #3
0
        internal static OpenEhr.AM.Archetype.ConstraintModel.Primitive.CPrimitive CPrimitive(string typeName)
        {
            DesignByContract.Check.Require(!string.IsNullOrEmpty(typeName), string.Format(CommonStrings.XMustNotBeNullOrEmpty, "typeName"));

            OpenEhr.AM.Archetype.ConstraintModel.Primitive.CPrimitive cPrimitive = null;
            switch (typeName)
            {
            case "C_BOOLEAN":
                cPrimitive = new CBoolean();
                break;

            case "C_DATE":
                cPrimitive = new CDate();
                break;

            case "C_DATE_TIME":
                cPrimitive = new CDateTime();
                break;

            case "C_DURATION":
                cPrimitive = new CDuration();
                break;

            case "C_TIME":
                cPrimitive = new CTime();
                break;

            case "C_INTEGER":
                cPrimitive = new CInteger();
                break;

            case "C_REAL":
                cPrimitive = new CReal();
                break;

            case "C_STRING":
                cPrimitive = new CString();
                break;

            default:
                throw new NotSupportedException("type not supported: " + typeName);
            }

            DesignByContract.Check.Ensure(cPrimitive != null, "cObject must not be null.");

            return(cPrimitive);
        }
예제 #4
0
        private static CDateTime Map(this C_DATE_TIME model)
        {
            var primitive = new CDateTime
            {
                AssumedValue = new DateTime
                {
                    Value = model.assumed_value
                },
                Pattern = model.pattern
            };

            if (model.range != null)
            {
                primitive.Range = model.range.Map();
            }
            return(primitive);
        }
예제 #5
0
        public FrmOpt10060Caller()
        {
            InitializeComponent();

            Func <DataTable> funcGetStockData = () =>
            {
                RichQuery oRichQuery = new RichQuery();
                return(oRichQuery.p_ScodeQuery("1", "", "", false).Tables[0].Copy());
            };

            _dtStockCode = funcGetStockData();

            foreach (DataRow dr in _dtStockCode.Rows)
            {
                _StockQueue.Enqueue(dr["STOCK_CODE"].ToString());
            }

            proBar10060.Maximum = _dtStockCode.Rows.Count;

            if (System.DateTime.Now.DayOfWeek == DayOfWeek.Saturday)
            {
                _stdDate = DateTime.Today.AddDays(-1).ToString("yyyyMMdd");
            }
            else if (System.DateTime.Now.DayOfWeek == DayOfWeek.Sunday)
            {
                _stdDate = DateTime.Today.AddDays(-2).ToString("yyyyMMdd");
            }
            else
            {
                int i = Int32.Parse(System.DateTime.Now.ToString("HH") + System.DateTime.Now.ToString("ss"));

                if (i > 1600)
                {
                    _stdDate = CDateTime.FormatDate(System.DateTime.Now.Date.ToShortDateString());
                }
                else if (System.DateTime.Now.DayOfWeek == DayOfWeek.Monday)
                {
                    _stdDate = DateTime.Today.AddDays(-3).ToString("yyyyMMdd");
                }
                else
                {
                    _stdDate = DateTime.Today.AddDays(-1).ToString("yyyyMMdd");
                }
            }
        }
예제 #6
0
 protected void grvData_HtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs e)
 {
     // if (e.DataColumn.FieldName == "Date")
     if (e.CellValue != null)
     {
         string toolTip = Environment.NewLine +
                          "Người gửi: " + grvData.GetRowValues(e.VisibleIndex, "NameCreatedBy").ToString() + Environment.NewLine + Environment.NewLine +
                          "Nội dung: " + grvData.GetRowValues(e.VisibleIndex, "Content").ToString() + Environment.NewLine + Environment.NewLine +
                          "Ngày giờ: " + DateTime.Parse(grvData.GetRowValues(e.VisibleIndex, "Date").ToString()).ToString("HH:mm, dd/MM/yyyy") + Environment.NewLine + Environment.NewLine;
         e.Cell.ToolTip = toolTip;
     }
     if (e.DataColumn.FieldName == "Date")
     {
         if (e.CellValue != null)
         {
             e.Cell.Text = CDateTime.getTimeNoti(DateTime.Parse(e.CellValue.ToString()));
         }
     }
 }
예제 #7
0
        /// <summary>
        /// Read the whole file
        /// </summary>
        public void ReadAll()
        {
            BaseStream.Seek(0, SeekOrigin.Begin);

            if (ReadUInt32() != Magic)
            {
                throw new InvalidCR2WFileException("Not a CR2W file - Missing 'CR2W' magic header.");
            }

            var version = ReadUInt32();

            if (!(version == 162 || version == 163))
            {
                throw new InvalidCR2WFileException($"This reader only supports CR2W versions 162 and 163. File version was read as {version}.");
            }

            //Base data.
            Flags        = ReadUInt32();
            TimeStamp    = ReadCDateTime();
            BuildVersion = ReadUInt32();
            CR2WSize     = ReadUInt32();
            BufferSize   = ReadUInt32();
            CRC32        = ReadUInt32();
            NumChunks    = ReadUInt32();

            //Headers.
            ReadTableHeaders();

            //Tables.
            ReadStrings();
            ReadNames();
            ReadResources();
            ReadObjects();
            ReadBuffers();
            ReadEmbedded();
        }
예제 #8
0
        public void Read(BinaryReader file)
        {
            m_stream = file.BaseStream;

            #region Read Headers
            // read file header
            var id = ReadStruct <uint>();
            if (id != MAGIC)
            {
                throw new FormatException($"Not a CR2W file, Magic read as 0x{id:X8}");
            }

            m_fileheader = ReadStruct <CR2WFileHeader>();
            if (m_fileheader.version > 163 || m_fileheader.version < 159)
            {
                throw new FormatException($"Unknown Version {m_fileheader.version}. Supported versions: 159 - 163.");
            }

            var dt = new CDateTime(m_fileheader.timeStamp);

            m_tableheaders = ReadStructs <CR2WTable>(10);

            // read strings
            m_strings = ReadStringsBuffer();

            // read tables
            names = ReadTable <CR2WName>(1).Select(_ => new CR2WNameWrapper(_)
            {
                Str = m_dictionary[_.value],
            }).ToList();
            imports = ReadTable <CR2WImport>(2).Select(_ => new CR2WImportWrapper(_)
            {
                DepotPathStr = m_dictionary[_.depotPath],
                ClassNameStr = names[_.className].Str,
            }).ToList();
            properties = ReadTable <CR2WProperty>(3).Select(_ => new CR2WPropertyWrapper(_)).ToList();
            chunks     = ReadTable <CR2WExport>(4).Select(_ => new CR2WExportWrapper(this, _)
            {
                //ParentChunkId = _.parentID
            }).ToList();
            buffers  = ReadTable <CR2WBuffer>(5).Select(_ => new CR2WBufferWrapper(_)).ToList();
            embedded = ReadTable <CR2WEmbedded>(6).Select(_ => new CR2WEmbeddedWrapper(_)
            {
                ParentImports = imports,
                Handle        = m_dictionary[_.path],
            }).ToList();
            #endregion

            #region Read Data
            // Read object data //block 5
            foreach (var chunk in chunks)
            {
                chunk.ReadData(file);
            }
            // Read buffer data //block 6
            foreach (var buffer in buffers)
            {
                //buffer.ReadData(file);
            }
            // Read embedded files //block 7
            foreach (var emb in embedded)
            {
                emb.ReadData(file);
            }
            #endregion



            //this never actually triggers

            /*#region Read Buffer
             * file.BaseStream.Seek(m_fileheader.fileSize, SeekOrigin.Begin);
             * m_hasInternalBuffer = m_fileheader.bufferSize > m_fileheader.fileSize;
             * byte[] bufferdata;
             * var actualbuffersize = (int)(m_fileheader.bufferSize - m_fileheader.fileSize);
             * if (actualbuffersize > 0)
             * {
             *  bufferdata = new byte[actualbuffersize];
             *  file.BaseStream.Read(bufferdata, 0, actualbuffersize);
             * }
             #endregion*/

            m_stream = null;
        }
예제 #9
0
 /// <summary>Создание объекта</summary>
 /// <param name="x_sLastName">фамилия родственника</param>
 /// <param name="x_sFirstName">имя родственника</param>
 /// <param name="x_sMiddleName">отчество родственника</param>
 public CPerson(string x_sLastName, string x_sFirstName, string x_sMiddleName, CDateTime x_dtBirthDate)
     : base(true)
 {
     LastName   = x_sLastName;
     FirstName  = x_sFirstName;
     MiddleName = x_sMiddleName;
     BirthDate  = x_dtBirthDate;
 }
예제 #10
0
 public void IsValidValueThrowsException()
 {
     var instance = new CDateTime();
     instance.IsValidValue(null);
 }
예제 #11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="dt">작업할 종목들</param>
        /// <param name="stdDate">기준일로부터 최근 3개월</param>
        public FrmOptDayJobCaller(DataTable dt, String stdDate)
        {
            InitializeComponent();
            _stdDate           = stdDate;
            _clsDataAccessUtil = new ClsDataAccessUtil();

            ClsAxKH.AxKH_10015_OnReceived += new ClsAxKH.OnReceivedEventHandler(Opt10015_OnReceived);
            ClsAxKH.AxKH_10081_OnReceived += new ClsAxKH.OnReceivedEventHandler(Opt10081_OnReceived);

            if (dt == null)
            {
                Func <DataTable> funcGetStockData = () =>
                {
                    RichQuery oRichQuery = new RichQuery();
                    return(oRichQuery.p_ScodeQuery("1", "", "", false).Tables[0].Copy());
                };

                _dtStockCode = funcGetStockData();
            }
            else
            {
                Func <DataTable> funcGetStockData = () =>
                {
                    RichQuery oRichQuery = new RichQuery();
                    return(oRichQuery.p_ScodeQuery("1", "", "", false).Tables[0].Copy());
                };

                _dtStockCode = dt.Copy();
                dt           = null;
            }

            foreach (DataRow dr in _dtStockCode.Rows)
            {
                if (ClsAxKH.GetMasterCodeName(dr["STOCK_CODE"].ToString().Trim()) == "")
                {
                    continue;
                }

                _StockQueue.Enqueue(dr["STOCK_CODE"].ToString());
            }

            proBar10015.Maximum = _dtStockCode.Rows.Count;
            proBar10060.Maximum = _dtStockCode.Rows.Count;
            proBar10081.Maximum = _dtStockCode.Rows.Count;

            if (_stdDate == "")
            {
                if (System.DateTime.Now.DayOfWeek == DayOfWeek.Saturday)
                {
                    _stdDate = DateTime.Today.AddDays(-1).ToString("yyyyMMdd");
                }
                else if (System.DateTime.Now.DayOfWeek == DayOfWeek.Sunday)
                {
                    _stdDate = DateTime.Today.AddDays(-2).ToString("yyyyMMdd");
                }
                else
                {
                    int i = Int32.Parse(System.DateTime.Now.ToString("HH") + System.DateTime.Now.ToString("ss"));

                    if (i > 1600)
                    {
                        _stdDate = CDateTime.FormatDate(System.DateTime.Now.Date.ToShortDateString());
                    }
                    else if (System.DateTime.Now.DayOfWeek == DayOfWeek.Monday)
                    {
                        _stdDate = DateTime.Today.AddDays(-3).ToString("yyyyMMdd");
                    }
                    else
                    {
                        _stdDate = DateTime.Today.AddDays(-1).ToString("yyyyMMdd");
                    }
                }
            }

            string  reDate  = "";
            ClsUtil clsUtil = new ClsUtil();

            reDate = clsUtil.Mid(_stdDate, 1, 4) + "-" + clsUtil.Mid(_stdDate, 5, 2) + clsUtil.Mid(_stdDate, 7, 2);

            DateTime dtDate = Convert.ToDateTime(reDate);

            _minDate = dtDate.AddDays(Convert.ToInt32(DayOfWeek.Monday) - Convert.ToInt32(dtDate.DayOfWeek)).ToString("yyyyMMdd");

            proBar10015.Value = _StockQueue.Count;
            proBar10081.Value = _StockQueue.Count;
            proBar10060.Value = _StockQueue.Count;

            OnGetStockCode();

            BtnStart.Text = "작업 중";
        }
예제 #12
0
        void ParseVariale(string type, int size, string offset)
        {
            var arr = type.Split(new char[] { ':' }, 2);

            switch (arr[0])
            {
            case "Uint8":
            {
                Writer.WriteLine(" {0}", ReadByte());
            }
                return;

            case "Uint16":
            {
                Writer.WriteLine(" {0}", ReadUInt16());
            }
                return;

            case "Uint32":
            {
                Writer.WriteLine(" {0}", ReadUInt32());
            }
                return;

            case "Uint64":
            {
                Writer.WriteLine(" {0}", ReadUInt64());
            }
                return;

            case "Int8":
            {
                Writer.WriteLine(" {0}", ReadSByte());
            }
                return;

            case "Int16":
            {
                Writer.WriteLine(" {0}", ReadInt16());
            }
                return;

            case "Int32":
            {
                Writer.WriteLine(" {0}", ReadInt32());
            }
                return;

            case "Int64":
            {
                Writer.WriteLine(" {0}", ReadInt64());
            }
                return;

            case "Float":
            {
                Writer.WriteLine(" {0}", ReadSingle());
            }
                return;

            case "Double":
            {
                Writer.WriteLine(" {0}", ReadDouble());
            }
                return;

            case "String":
            {
                var length = ReadVLQInt32();
                if (length < 0)
                {
                    Writer.WriteLine(" {0}", Encoding.ASCII.GetString(ReadBytes(length * -1)));
                }
                else
                {
                    Writer.WriteLine(" {0}", Encoding.Unicode.GetString(ReadBytes(length * 2)));
                }
            }
                return;

            case "StringAnsi":
            {
                var b   = ReadByte();
                var nxt = (b & (1 << 7)) != 0;
                int len = b & ((1 << 7) - 1);

                if (nxt)
                {
                    Writer.WriteLine(" {0}", Encoding.Unicode.GetString(ReadBytes(len * 2)));
                }
                else
                {
                    Writer.WriteLine(" {0}", Encoding.ASCII.GetString(ReadBytes(len)));
                }
            }
                return;

            case "Bool":
            {
                Writer.WriteLine(" {0}", ReadBoolean());
            }
                return;

            case "CName":
            {
                Writer.WriteLine(" {0}", names[ReadUInt16()].Value);
            }
                return;

            case "CGUID":
            {
                Writer.WriteLine(" {0}", new CGUID(ReadBytes(16)).ToString());
            }
                return;

            case "LocalizedString":
            {
                Writer.WriteLine(" {0}", ReadUInt32());
            }
                return;

            case "ptr":
            {
                Writer.WriteLine(" Object {0}", ReadUInt32());
            }
                return;

            case "soft":
            {
                var res = resources[ReadUInt16() - 1];
                Writer.WriteLine(" {0} {1} ({2})", res.Type, res.Path, res.Flags);
            }
                return;

            case "array":
            {
                var len = ReadUInt32();
                arr = arr[1].Split(new char[] { ',' }, 3);
                Writer.WriteLine(" {0}", len);
                Writer.WriteLine("{0}{{", offset.Substring(1));
                for (uint i = 0; i < len; i++)
                {
                    Writer.Write("{0}Id {1}:", offset, i);
                    ParseVariale(arr[2], size, $"\t{offset}");
                }
                Writer.WriteLine("{0}}}", offset.Substring(1));
            }
                return;

            case "handle":
            {
                var id = ReadInt32();
                if (id >= 0)
                {
                    Writer.WriteLine(" Object: {0}", id);
                }
                else
                {
                    id *= -1;
                    var res = resources[id - 1];
                    Writer.WriteLine(" {0} {1} ({2})", res.Type, res.Path, res.Flags);
                }
            }
                return;

            case "SAppearanceAttachment":
            {
                Writer.WriteLine();
                Writer.WriteLine("{0}{{", offset.Substring(1));
                ReadVariable(offset);
                var bytecount = ReadInt32();
                var unknown   = ReadBytes(bytecount - 4);
                Writer.WriteLine("{0}Unknown Bytes: {1}", offset, bytecount - 4);
                Writer.WriteLine("{0}}}", offset.Substring(1));
            }
                return;

            case "IdTag":
            {
                var dynamic = ReadBoolean();
                var guid    = new CGUID(ReadBytes(16));
                if (dynamic)
                {
                    Writer.WriteLine(" [Dynamic: {0}]", guid.ToString());
                }
                else
                {
                    Writer.WriteLine(" [Static: {0}]", guid.ToString());
                }
            }
                return;

            case "EngineTransform":
            {
                Writer.Write(" [ ");
                var flags = ReadByte();
                if ((flags & 1) == 1)
                {
                    Writer.Write("Posistion:{0},{1},{2} ", ReadSingle(), ReadSingle(), ReadSingle());
                }
                if ((flags & 2) == 2)
                {
                    Writer.Write("Rotation:{0},{1},{2} ", ReadSingle(), ReadSingle(), ReadSingle());
                }
                if ((flags & 4) == 4)
                {
                    Writer.Write("Scale:{0},{1},{2} ", ReadSingle(), ReadSingle(), ReadSingle());
                }
                Writer.WriteLine("]");
            }
                return;

            case "EngineQsTransform":
            {
                Writer.Write("[ ");
                var flags = ReadByte();
                if ((flags & 1) == 1)
                {
                    Writer.Write("Posistion:{0},{1},{2} ", ReadSingle(), ReadSingle(), ReadSingle());
                }
                if ((flags & 2) == 2)
                {
                    Writer.Write("Rotation:{0},{1},{2},{3} ", ReadSingle(), ReadSingle(), ReadSingle(), ReadSingle());
                }
                if ((flags & 4) == 4)
                {
                    Writer.Write("Scale:{0},{1},{2} ", ReadSingle(), ReadSingle(), ReadSingle());
                }
                Writer.WriteLine("]");
            }
                return;

            case "TagList":
            {
                var count = ReadByte();
                var tags  = new string[count];
                for (var i = 0; i < count; i++)
                {
                    tags[i] = names[ReadUInt16()].Value;
                }
                Writer.WriteLine(" [{0}]", string.Join(",", tags));
            }
                return;

            case "EntityHandle":
            {
                /*
                 *  Read the first byte which will tell you what type of entity handle it is.
                 *  Values:
                 *      0 - None - 0 bytes
                 *      1 - Entity Guid - 32 bytes
                 *      2 - IdTag - 17 bytes
                 *
                 *      Then read off that variable type.
                 *
                 *      IdTag:
                 *          1 Byte - 0 = Static, 1 = Dynamic
                 *          16 Bytes - Guid Value
                 *      Entity:
                 *          16 Bytes - Guid Value
                 *          16 Bytes - Unknown
                 *
                 */
                var handletype = ReadByte();
                switch (handletype)
                {
                //Entity
                case 1:
                    var eguid = new CGUID(ReadBytes(16));
                    var unkn  = ReadBytes(16);
                    Writer.WriteLine(" [Entity - {0}]", eguid.ToString());
                    break;

                //IdTag
                case 2:
                    var dynamic = ReadBoolean();
                    var guid    = new CGUID(ReadBytes(16));
                    if (dynamic)
                    {
                        Writer.WriteLine(" [Dynamic: {0}]", guid.ToString());
                    }
                    else
                    {
                        Writer.WriteLine(" [Static: {0}]", guid.ToString());
                    }
                    break;
                }
            }
                return;

            case "static":
            {
                var length = ReadUInt32();
                arr = arr[1].Split(new char[] { ',' }, 2);
                Writer.WriteLine(" {0}", length);
                Writer.WriteLine("{0}{{", offset.Substring(1));
                for (uint i = 0; i < length; i++)
                {
                    Writer.Write("{0}Id {1}:", offset, i);
                    ParseVariale(arr[1], size, $"\t{offset}");
                }
                Writer.WriteLine("{0}}}", offset.Substring(1));
            }
                return;

            case "CDateTime":
            {
                var datetime = new CDateTime(ReadUInt64());
                Writer.WriteLine(" {0}.{1}", datetime.ToString(), datetime.Value.Millisecond);
            }
                return;

            case "SharedDataBuffer":
            {
                var datasize = ReadInt32();
                var bytes    = ReadBytes(datasize);
                Writer.WriteLine(" {0} bytes", datasize);
            }
                return;

            case "DataBuffer":
            {
                var datasize = ReadInt32();
                var bytes    = ReadBytes(datasize);
                Writer.WriteLine(" {0} bytes", datasize);
            }
                return;

            case "DeferredDataBuffer":
            {
                Writer.WriteLine(" {0}", ReadUInt16());
            }
                return;

            case "CPhysicalCollision":
            {
                var unknown   = ReadUInt32();
                var nameCount = ReadByte();

                Writer.WriteLine();
                Writer.WriteLine("{0}{{", offset.Substring(1));
                Writer.WriteLine("{0}unknown Uint32 {1}", offset, unknown);
                Writer.WriteLine("{0}Types", offset);
                Writer.WriteLine("{0}{{", offset);
                for (byte i = 0; i < nameCount; i++)
                {
                    Writer.WriteLine("\t{0}Id {1}: {2}", offset, i, names[ReadUInt16()].Value);
                }
                Writer.WriteLine("{0}}}", offset);
                Writer.WriteLine("{0}Bytes {1}", offset, String.Join(", ", ReadBytes(16)));
                Writer.WriteLine("{0}}}", offset.Substring(1));
            }
                return;
            }

            Type myType = Type.GetType($"CR2W.Types.W3.{type}");

            if (myType != null)
            {
                if (myType.IsEnum)
                {
                    if (myType.IsDefined(typeof(FlagsAttribute), false))
                    {
                        var values = new List <string>();
                        while (true)
                        {
                            var flag = ReadUInt16();
                            if (flag == 0)
                            {
                                break;
                            }
                            values.Add(names[flag].Value);
                        }
                        if (values.Count != 0)
                        {
                            Writer.WriteLine(" {0}", Enum.Parse(myType, String.Join(",", values)));
                        }
                        else
                        {
                            Writer.WriteLine(" {0}", "None");
                        }
                    }
                    else
                    {
                        var value = names[ReadUInt16()].Value;
                        Writer.WriteLine(" {0}", value);
                    }
                    return;
                }
            }

            Writer.WriteLine();
            Writer.WriteLine("{0}{{", offset.Substring(1));
            ReadVariable(offset);
            Writer.WriteLine("{0}}}", offset.Substring(1));
        }
예제 #13
0
        protected void grvData_HtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs e)
        {
            //if (e.DataColumn.FieldName == "Description")
            if (e.CellValue != null)
            {
                string toolTip = Environment.NewLine +
                                 "Mô tả: " + grvData.GetRowValues(e.VisibleIndex, "Description").ToString() + Environment.NewLine + Environment.NewLine +
                                 "Tạo bởi " + grvData.GetRowValues(e.VisibleIndex, "FullName").ToString() + Environment.NewLine + Environment.NewLine +
                                 "Sửa gần đây nhất: " + DateTime.Parse(grvData.GetRowValues(e.VisibleIndex, "ModifiedOn").ToString()).ToString("dd/MM/yyyy") + Environment.NewLine + Environment.NewLine;

                if (rblFilter.SelectedIndex != 2)
                { //chưa được duyệt không thể nhìn thấy password
                    toolTip += "Mật khẩu   : " + grvData.GetRowValues(e.VisibleIndex, "ContestPassword").ToString() + Environment.NewLine;
                }

                try
                {
                    if (grvData.GetRowValues(e.VisibleIndex, "StartTime") != null)
                    {
                        toolTip += "Bắt đầu: " + DateTime.Parse(grvData.GetRowValues(e.VisibleIndex, "StartTime").ToString()).ToString("HH:mm, dd/MM/yyyy") + Environment.NewLine + Environment.NewLine;
                    }
                    if (grvData.GetRowValues(e.VisibleIndex, "EndTime") != null)
                    {
                        toolTip += "Kết thúc: " + DateTime.Parse(grvData.GetRowValues(e.VisibleIndex, "EndTime").ToString()).ToString("HH:mm, dd/MM/yyyy") + Environment.NewLine + Environment.NewLine;
                    }
                }
                catch (Exception)
                {
                }
                if (e.DataColumn.FieldName == "StartTime" || e.DataColumn.FieldName == "EndTime")
                {
                    try
                    {
                        DateTime dt = DateTime.Parse(e.CellValue.ToString());
                        e.Cell.Text = CDateTime.getTimeNoti(dt);
                    }
                    catch
                    {
                    }
                }
                //+ e.CellValue.ToString();
                e.Cell.ToolTip = toolTip;
                // e.Cell.Visible = false;

                try
                {
                    if (e.DataColumn.FieldName == "ContestId")
                    {
                        if (rblFilter.SelectedIndex == 2) // chưa phê duyệt thì k được xem
                        {
                            e.Cell.Enabled = false;
                        }


                        else if (rblFilter.SelectedIndex == 1) // đã phê duyệt mà hết hạn cũng không được tham gia
                        {
                            DateTime startTime = DateTime.Parse(grvData.GetRowValues(e.VisibleIndex, "StartTime").ToString());
                            DateTime endTime   = DateTime.Parse(grvData.GetRowValues(e.VisibleIndex, "EndTime").ToString());
                            DateTime now       = DateTime.Now;
                            if (now > endTime || now < startTime)
                            {
                                e.Cell.Enabled = false;
                            }
                        }
                    }
                }
                catch (Exception)
                {
                }
            }
        }
예제 #14
0
        public void Read(BinaryReader file)
        {
            m_stream = file.BaseStream;

            #region Read Headers
            var id = ReadStruct <uint>();
            if (id != MAGIC)
            {
                throw new FormatException($"Not a CR2W file, Magic read as 0x{id:X8}");
            }

            m_fileheader = ReadStruct <CR2WFileHeader>();
            if (m_fileheader.version > 163 || m_fileheader.version < 159)
            {
                throw new FormatException($"Unknown Version {m_fileheader.version}. Supported versions: 159 - 163.");
            }

            var dt = new CDateTime(m_fileheader.timeStamp);

            m_hasInternalBuffer = m_fileheader.bufferSize > m_fileheader.fileSize;
            m_tableheaders      = ReadStructs <CR2WTableHeader>(10);

            m_strings  = ReadStringsBuffer();
            m_names    = ReadTable <CR2WName>(1);
            m_imports  = ReadTable <CR2WImportHeader>(2);
            m_table4   = ReadTable <CR2WTable4Item>(3);
            m_exports  = ReadTable <CR2WExportHeader>(4);
            m_buffers  = ReadTable <CR2WBufferHeader>(5);
            m_embedded = ReadTable <CR2WEmbeddedHeader>(6);
            #endregion

            #region Read Data
            // read Name data
            names = (from n in m_names
                     let str = new CR2WString()
            {
                hash = n.hash,
                offset = n.value,
                str = m_dictionary[n.value]
            }
                     select str).ToList();
            // Read Handle data (imports)
            imports = (from i in m_imports
                       let handle = new CR2WHandle()
            {
                offset = i.depotPath,
                filetype = i.className,
                flags = i.flags,
                str = m_dictionary[i.depotPath]
            }
                       select handle).ToList();
            // Read Chunk data (exports)
            chunks = new List <CR2WChunk>();
            foreach (var c in m_exports)
            {
                var chunk = new CR2WChunk(this)
                {
                    typeId        = c.className,
                    Flags         = c.objectFlags,
                    ParentChunkId = c.parentID,
                    size          = c.dataSize,
                    offset        = c.dataOffset,
                    template      = c.template,
                    crc           = c.crc32
                };
                chunks.Add(chunk);
                chunk.ReadData(file);
            }

            // Read Buffer Data (block 6)
            buffers = new List <CR2WBuffer>();
            foreach (var b in m_buffers)
            {
                var buffer = new CR2WBuffer()
                {
                    flags   = b.flags,
                    index   = b.index,
                    offset  = b.offset,
                    size    = b.diskSize,
                    memsize = b.memSize,
                    crc     = b.crc32
                };
                buffers.Add(buffer);
            }
            // Read Embedded Data (Block 7)
            embedded = new List <CR2WEmbedded>();
            foreach (var e in m_embedded)
            {
                var emb = new CR2WEmbedded()
                {
                    handle_name_count  = e.importIndex,
                    handle_name_offset = e.path,
                    pathHash           = e.pathHash,
                    offset             = e.dataOffset,
                    size = e.dataSize
                };
                var offset = e.path;
                for (int i = 0; i < e.importIndex; i++)
                {
                    if (offset > m_dictionary.Last().Key)
                    {
                        continue;
                    }
                    emb.handles.Add(m_dictionary[offset]);
                    offset += (uint)m_dictionary[offset].Length + 1;
                }
                embedded.Add(emb);
                emb.ReadData(file);
            }
            #endregion

            #region Read Buffer

            file.BaseStream.Seek(m_fileheader.fileSize, SeekOrigin.Begin);

            var actualbuffersize = (int)(m_fileheader.bufferSize - m_fileheader.fileSize);
            if (actualbuffersize > 0)
            {
                bufferdata = new byte[actualbuffersize];
                file.BaseStream.Read(bufferdata, 0, actualbuffersize);
            }
            #endregion

            m_stream = null;
        }
예제 #15
0
        private void ProcessFile()
        {
            var id = ReadStruct <uint>();

            if (id != MAGIC)
            {
                throw new FormatException($"Not a CR2W file, Magic read as 0x{id:X8}");
            }

            m_fileheader = ReadStruct <CR2WFileHeader>();
            if (m_fileheader.version > 163 || m_fileheader.version < 159)
            {
                throw new FormatException($"Unknown Version {m_fileheader.version}. Supported versions: 159 - 163.");
            }

            var dt = new CDateTime(m_fileheader.timeStamp, null, "");

            m_hasInternalBuffer = m_fileheader.bufferSize > m_fileheader.fileSize;
            m_tableheaders      = ReadStructs <CR2WTable>(10);

            m_strings  = ReadStringsBuffer();
            m_names    = ReadTable <CR2WName>(1);
            m_imports  = ReadTable <CR2WImport>(2);
            m_table4   = ReadTable <CR2WProperty>(3);
            m_exports  = ReadTable <CR2WExport>(4);
            m_buffers  = ReadTable <CR2WBuffer>(5);
            m_embedded = ReadTable <CR2WEmbedded>(6);

            // Fixing
            for (int i = 0; i < m_names.Length; i++)
            {
                FixNameFNV1A(ref m_names[i]);
            }

            for (int i = 0; i < m_exports.Length; i++)
            {
                FixExportCRC32(ref m_exports[i]);
            }

            for (int i = 0; i < m_buffers.Length; i++)
            {
                FixBufferCRC32(ref m_buffers[i]);
            }

            // Write File
            m_stream.Seek(160, SeekOrigin.Begin);

            WriteStringBuffer();
            WriteTable <CR2WName>(m_names, 1);
            WriteTable <CR2WImport>(m_imports, 2);
            WriteTable <CR2WProperty>(m_table4, 3);
            WriteTable <CR2WExport>(m_exports, 4);
            WriteTable <CR2WBuffer>(m_buffers, 5);
            WriteTable <CR2WEmbedded>(m_embedded, 6);

            // Write Header again
            m_stream.Seek(0, SeekOrigin.Begin);

            m_fileheader.timeStamp = CDateTime.Now.ToUInt64();
            m_fileheader.crc32     = CalculateHeaderCRC32();

            WriteStruct <uint>(MAGIC);
            WriteStruct <CR2WFileHeader>(m_fileheader);
            WriteStructs <CR2WTable>(m_tableheaders);
        }
예제 #16
0
        public void CreateToday()
        {
            CDateTime c_dtToday = new CDateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);

            Assert.IsTrue(c_dtToday.Day == DateTime.Now.Day);
        }
예제 #17
0
 public void AddInputOutputParameter(String name, CDateTime value)
 {
     _parameters.Add(new Parameter(name, value, ParameterDirection.InputOutput));
 }
예제 #18
0
        void ParseVariale(string type, int size, string offset)
        {
            var arr = type.Split(new char[] { ':' }, 2);

            switch (arr[0])
            {
                #region .NET Types
            case "Uint8":
            {
                Writer.WriteLine(" {0}", ReadByte());
            }
                return;

            case "Uint16":
            {
                Writer.WriteLine(" {0}", ReadUInt16());
            }
                return;

            case "Uint32":
            {
                Writer.WriteLine(" {0}", ReadUInt32());
            }
                return;

            case "Uint64":
            {
                Writer.WriteLine(" {0}", ReadUInt64());
            }
                return;

            case "Int8":
            {
                Writer.WriteLine(" {0}", ReadSByte());
            }
                return;

            case "Int16":
            {
                Writer.WriteLine(" {0}", ReadInt16());
            }
                return;

            case "Int32":
            {
                Writer.WriteLine(" {0}", ReadInt32());
            }
                return;

            case "Int64":
            {
                Writer.WriteLine(" {0}", ReadInt64());
            }
                return;

            case "Float":
            {
                Writer.WriteLine(" {0}", ReadSingle());
            }
                return;

            case "String":
            {
                var(flag, length) = ReadVLQInt32();
                var encoding = flag ? Encoding.ASCII : Encoding.Unicode;
                var chars    = new char[length];
                var byteSize = encoding.GetByteCount(chars);
                var bytes    = ReadBytes(byteSize);
                encoding.GetChars(bytes, 0, byteSize, chars, 0);
                Writer.WriteLine(" {0}", new string(chars));
            }
                return;

            case "Bool":
            {
                Writer.WriteLine(" {0}", ReadBoolean());
            }
                return;

                #endregion
                #region RED Types
            case "StringAnsi":
            {
                var length = ReadByte();
                var bytes  = ReadBytes(length);
                Writer.WriteLine(" {0}", new StringAnsi(bytes));
            }
                return;

            case "CName":
            {
                Writer.WriteLine(" {0}", names[ReadUInt16()].Value);
            }
                return;

            case "CGUID":
            {
                Writer.WriteLine(" {0}", new CGUID(ReadBytes(16)).ToString());
            }
                return;

            case "LocalizedString":
            {
                Writer.WriteLine(" {0}", ReadUInt32());
            }
                return;

            case "ptr":
            {
                Writer.WriteLine(" Object {0}", ReadUInt32());
            }
                return;

            case "soft":
            {
                var id = ReadUInt16();
                if (id == 0)
                {
                    Writer.WriteLine(" NULL");
                    return;
                }
                var res = resources[id - 1];
                Writer.WriteLine(" {0} {1} ({2})", res.Type, res.Path, res.Flags);
            }
                return;

            case "array":
            {
                arr = arr[1].Split(new char[] { ',' }, 3);
                var len = ReadUInt32();
                Writer.WriteLine(" {0}", len);
                Writer.WriteLine("{0}{{", offset.Substring(1));
                for (uint i = 0; i < len; i++)
                {
                    Writer.Write("{0}Id {1}:", offset, i);
                    ParseVariale(arr[2], size, $"\t{offset}");
                }
                Writer.WriteLine("{0}}}", offset.Substring(1));
            }
                return;

            case "handle":
            {
                var id = ReadInt32();
                if (id >= 0)
                {
                    Writer.WriteLine(" Object: {0}", id);
                }
                else
                {
                    id *= -1;
                    var res = resources[id - 1];
                    Writer.WriteLine(" {0} {1} ({2})", res.Type, res.Path, res.Flags);
                }
            }
                return;

            case "SAppearanceAttachment":
            {
                Writer.WriteLine();
                Writer.WriteLine("{0}{{", offset.Substring(1));
                ReadVariable(offset);
                var bytecount = ReadInt32();
                var unknown   = ReadBytes(bytecount - 4);
                Writer.WriteLine("{0}Unknown Bytes: {1}", offset, bytecount - 4);
                Writer.WriteLine("{0}}}", offset.Substring(1));
            }
                return;

            case "IdTag":
            {
                var dynamic = ReadBoolean();
                var guid    = new CGUID(ReadBytes(16));
                if (dynamic)
                {
                    Writer.WriteLine(" [Dynamic: {0}]", guid.ToString());
                }
                else
                {
                    Writer.WriteLine(" [Static: {0}]", guid.ToString());
                }
            }
                return;

            case "EngineTransform":
            {
                Writer.Write(" [ ");
                var flags = ReadByte();
                if ((flags & 1) == 1)
                {
                    Writer.Write("Posistion:{0},{1},{2} ", ReadSingle(), ReadSingle(), ReadSingle());
                }
                if ((flags & 2) == 2)
                {
                    Writer.Write("Rotation:{0},{1},{2} ", ReadSingle(), ReadSingle(), ReadSingle());
                }
                if ((flags & 4) == 4)
                {
                    Writer.Write("Scale:{0},{1},{2} ", ReadSingle(), ReadSingle(), ReadSingle());
                }
                Writer.WriteLine("]");
            }
                return;

            case "EngineQsTransform":
            {
                Writer.Write(" [ ");
                var flags = ReadByte();
                if ((flags & 1) == 1)
                {
                    Writer.Write("Posistion:{0},{1},{2} ", ReadSingle(), ReadSingle(), ReadSingle());
                }
                if ((flags & 2) == 2)
                {
                    Writer.Write("Rotation:{0},{1},{2},{3} ", ReadSingle(), ReadSingle(), ReadSingle(), ReadSingle());
                }
                if ((flags & 4) == 4)
                {
                    Writer.Write("Scale:{0},{1},{2} ", ReadSingle(), ReadSingle(), ReadSingle());
                }
                Writer.WriteLine("]");
            }
                return;

            case "TagList":
            {
                // This could be a vlq int value but so far there is no tag list
                // size big enough to use more than one bytes.
                var count = ReadByte();
                var tags  = new string[count];
                for (var i = 0; i < count; i++)
                {
                    tags[i] = names[ReadUInt16()].Value;
                }
                Writer.WriteLine(" [{0}]", string.Join(",", tags));
            }
                return;

            case "EntityHandle":
            {
                /*
                 *  Read the first byte which will tell you what type of entity handle it is.
                 *  Values:
                 *      0 - None - 0 bytes
                 *      1 - Entity Guid - 32 bytes
                 *      2 - IdTag - 17 bytes
                 *
                 *      Then read off that variable type.
                 *
                 *      IdTag:
                 *          1 Byte - 0 = Static, 1 = Dynamic
                 *          16 Bytes - Guid Value
                 *      Entity:
                 *          16 Bytes - Guid Value
                 *          16 Bytes - Unknown
                 */
                var handletype = ReadByte();
                switch (handletype)
                {
                //Entity
                case 1:
                    var eguid = new CGUID(ReadBytes(16));
                    var unkn  = ReadBytes(16);
                    Writer.WriteLine(" [Entity - {0}]", eguid.ToString());
                    break;

                //IdTag
                case 2:
                    var dynamic = ReadBoolean();
                    var guid    = new CGUID(ReadBytes(16));
                    if (dynamic)
                    {
                        Writer.WriteLine(" [Dynamic: {0}]", guid.ToString());
                    }
                    else
                    {
                        Writer.WriteLine(" [Static: {0}]", guid.ToString());
                    }
                    break;
                }
            }
                return;

            case "static":
            {
                var length = ReadUInt32();
                arr = arr[1].Split(new char[] { ',' }, 2);
                Writer.WriteLine(" {0}", length);
                Writer.WriteLine("{0}{{", offset.Substring(1));
                for (uint i = 0; i < length; i++)
                {
                    Writer.Write("{0}Id {1}:", offset, i);
                    ParseVariale(arr[1], size, $"\t{offset}");
                }
                Writer.WriteLine("{0}}}", offset.Substring(1));
            }
                return;

            case "CDateTime":
            {
                var datetime = new CDateTime(ReadUInt64());
                Writer.WriteLine(" {0}.{1}", datetime.ToString(), datetime.Value.Millisecond);
            }
                return;

            case "SharedDataBuffer":
            {
                var datasize = ReadInt32();
                var bytes    = ReadBytes(datasize);
                Writer.WriteLine(" {0} bytes", datasize);
            }
                return;

            case "DataBuffer":
            {
                var datasize = ReadInt32();
                var bytes    = ReadBytes(datasize);
                Writer.WriteLine(" {0} bytes", datasize);
            }
                return;

            case "DeferredDataBuffer":
            {
                Writer.WriteLine(" {0}", ReadUInt16());
            }
                return;

            case "SMeshTypeResourceLODLevel":
            {
                Writer.WriteLine(" {0}", ReadSingle());
            }
                return;

            case "CPhysicalCollision":
            {
                var unknown   = ReadUInt32();
                var nameCount = ReadByte();

                Writer.WriteLine();
                Writer.WriteLine("{0}{{", offset.Substring(1));
                Writer.WriteLine("{0}unknown Uint32 {1}", offset, unknown);
                Writer.WriteLine("{0}Types", offset);
                Writer.WriteLine("{0}{{", offset);
                for (byte i = 0; i < nameCount; i++)
                {
                    Writer.WriteLine("\t{0}Id {1}: {2}", offset, i, names[ReadUInt16()].Value);
                }
                Writer.WriteLine("{0}}}", offset);
                Writer.WriteLine("{0}Bytes {1}", offset, String.Join(", ", ReadBytes(16)));
                Writer.WriteLine("{0}}}", offset.Substring(1));
            }
                return;

                #endregion
            }

            //Detects types such as [7]Float etc...
            var regEx = Regex.Match(type, @"^\[([0-9]+)\]([\x00-\x7F]+)$");
            if (regEx.Success)
            {
                var arraySize = ReadUInt32();
                if (arraySize != Convert.ToUInt32(regEx.Groups[1].Value))
                {
                    throw new FormatException();
                }
                Writer.WriteLine(" {0}", arraySize);
                Writer.WriteLine("{0}{{", offset.Substring(1));
                for (uint i = 0; i < arraySize; i++)
                {
                    Writer.Write("{0}Id {1}:", offset, i);
                    ParseVariale(regEx.Groups[2].Value, size, $"\t{offset}");
                }
                Writer.WriteLine("{0}}}", offset.Substring(1));
                return;
            }

            var myType = AssemblyDictionary.GetTypeByName(type);
            if (myType != null && myType.IsEnum)
            {
                if (myType.IsDefined(typeof(FlagsAttribute), false))
                {
                    var values = new List <string>();
                    while (true)
                    {
                        var flag = ReadUInt16();
                        if (flag == 0)
                        {
                            break;
                        }
                        values.Add(names[flag].Value);
                    }
                    if (values.Count != 0)
                    {
                        Writer.WriteLine(" {0}", Enum.Parse(myType, String.Join(",", values)));
                    }
                    else
                    {
                        Writer.WriteLine(" {0}", "None");
                    }
                }
                else
                {
                    var value = names[ReadUInt16()].Value;
                    Writer.WriteLine(" {0}", value);
                }
                return;
            }

            Writer.WriteLine();
            Writer.WriteLine("{0}{{", offset.Substring(1));
            ReadVariable(offset);
            Writer.WriteLine("{0}}}", offset.Substring(1));
        }
예제 #19
0
        public void IsValidValueThrowsException()
        {
            var instance = new CDateTime();

            instance.IsValidValue(null);
        }