Ejemplo n.º 1
0
        public void WriteData()
        {
            List <RecordDate> dates = new List <RecordDate>();

            foreach (DateTime date in master.Keys)
            {
                RecordDate rdate = new RecordDate();
                rdate.date = String.Format("new Date({0},{1},{2},{3},{4},{5})", date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second);

                SpeciesRecords recs = master[date];
                foreach (SpeciesRepItem item in recs.records)
                {
                    rdate.items.Add(item);
                }


                dates.Add(rdate);
            }



            JavaScriptSerializer js = new JavaScriptSerializer();

            Response.Write(js.Serialize(dates));
        }
Ejemplo n.º 2
0
        public StringBuilder GetRecordExportStringBuilder()
        {
            CultureInfo culture    = new CultureInfo("en-US");
            string      group1Name = "";

            if (Group1 != null)
            {
                group1Name = Group1.GroupName;
            }

            string group2Name = "";

            if (Group2 != null)
            {
                group2Name = Group2.GroupName;
            }

            StringBuilder sb = new StringBuilder();

            sb.AppendFormat(culture, "{0},{1},{2},{3},{4},{5},{6},{7}",
                            RecordId,
                            RecordDate.ToString("dd/MM/yyyy"),
                            BankAccount.AccountName,
                            group1Name,
                            group2Name,
                            RecordDetails,
                            RecordValue,
                            RecordComment
                            );

            return(sb);
        }
Ejemplo n.º 3
0
 public override int CompareTo(object y)
 {
     if (y is AbstractRecord)
     {
         return(RecordDate.CompareTo(((AbstractRecord)y).RecordDate));
     }
     return(0);
 }
        public bool SubmitAccountRecord()
        {
            //Validation
            try
            {
                if (ProfileID < 1)
                {
                    return(false);
                }
                Amount.ToString();
                if (Name == "")
                {
                    return(false);
                }
                if (LastUpdateDate < new DateTime(2000, 1, 1))
                {
                    return(false);
                }
                if (RecordBy == "")
                {
                    return(false);
                }
                if (RecordDate < new DateTime(2000, 1, 1))
                {
                    return(false);
                }
            }
            catch (NullReferenceException) { return(false); }

            using (var conn = DataAccess.EstablishConnection())
            {
                var cmd = conn.CreateCommand();
                try
                {
                    cmd.CommandText = "INSERT INTO tblAccounts (ProfileID, Acc_Name, Acc_Amount, Acc_LastUpdateDate, RecordBy, RecordDate) VALUES (@ProfileID, @Name, @Amount, @LastUpdateDate, @RecordBy, @RecordDate)";
                    cmd.Parameters.Add("@ProfileID", DbType.Int32).Value       = ProfileID;
                    cmd.Parameters.Add("@Name", DbType.String).Value           = Name;
                    cmd.Parameters.Add("@Amount", DbType.Double).Value         = Amount;
                    cmd.Parameters.Add("@LastUpdateDate", DbType.String).Value = LastUpdateDate.ToString("MM/dd/yyyy");
                    cmd.Parameters.Add("@RecordBy", DbType.String).Value       = RecordBy;
                    cmd.Parameters.Add("@RecordDate", DbType.String).Value     = RecordDate.ToString("yyyy-MM-dd HH:mm");

                    if (conn.State == ConnectionState.Closed)
                    {
                        conn.Open();
                    }

                    cmd.ExecuteNonQuery();
                }
                finally { conn.Close(); cmd.Dispose(); }
            }

            return(true);
        }
Ejemplo n.º 5
0
        public void SubmitDebt()
        {
            using (var conn = DataAccess.EstablishConnection())
            {
                var cmd = conn.CreateCommand();
                try
                {
                    if (ID == -1)
                    {
                        cmd.CommandText = "INSERT INTO tblDebts (ProfileID, Dbt_Name, Dbt_Principal, Dbt_LastUpdateDate, Dbt_InterestType, Dbt_NumberOfTimesApplied, Dbt_AnnualPercentageRate, RecordBy, RecordDate) VALUES (@ProfileID, @Name, @Principal, @Date, @InterestType, @InterestFrequency, @APR, @RecordBy, @RecordDate)";
                        cmd.Parameters.Add("@ProfileID", DbType.Int32).Value         = ProfileID;
                        cmd.Parameters.Add("@Name", DbType.String).Value             = Name;
                        cmd.Parameters.Add("@Principal", DbType.Double).Value        = Principal;
                        cmd.Parameters.Add("@Date", DbType.String).Value             = LastUpdateDate.ToString("MM/dd/yyyy");
                        cmd.Parameters.Add("@InterestType", DbType.Int32).Value      = (int)InterestType;
                        cmd.Parameters.Add("@InterestFrequency", DbType.Int32).Value = (int)TimesApplied;
                        cmd.Parameters.Add("@APR", DbType.Double).Value        = AnnualPercentageRate;
                        cmd.Parameters.Add("@RecordBy", DbType.String).Value   = RecordBy;
                        cmd.Parameters.Add("@RecordDate", DbType.String).Value = RecordDate.ToString("yyyy-MM-dd HH:mm");
                    }
                    else
                    {
                        cmd.CommandText = "UPDATE tblDebts SET Dbt_Name = @Name, Dbt_Principal = @Principal, Dbt_LastUpdateDate = @Date, Dbt_InterestType = @InterestType, Dbt_NumberOfTimesApplied = @InterestFrequency, Dbt_AnnualPercentageRate = @APR, RecordBy = @RecordBy, RecordDate = @RecordDate WHERE DebtID = @DebtID";
                        cmd.Parameters.Add("@DebtID", DbType.Int32).Value            = ID;
                        cmd.Parameters.Add("@Name", DbType.String).Value             = Name;
                        cmd.Parameters.Add("@Principal", DbType.Double).Value        = Principal;
                        cmd.Parameters.Add("@Date", DbType.String).Value             = LastUpdateDate.ToString("MM/dd/yyyy");
                        cmd.Parameters.Add("@InterestType", DbType.Int32).Value      = (int)InterestType;
                        cmd.Parameters.Add("@InterestFrequency", DbType.Int32).Value = (int)TimesApplied;
                        cmd.Parameters.Add("@APR", DbType.Double).Value        = AnnualPercentageRate;
                        cmd.Parameters.Add("@RecordBy", DbType.String).Value   = RecordBy;
                        cmd.Parameters.Add("@RecordDate", DbType.String).Value = RecordDate.ToString("yyyy-MM-dd HH:mm");
                    }

                    if (conn.State == ConnectionState.Closed)
                    {
                        conn.Open();
                    }

                    cmd.ExecuteNonQuery();
                }
                finally { conn.Close(); cmd.Dispose(); }
            }
        }
        public bool UpdateAccountBalance(double change, DateTime updateDate)
        {
            try
            {
                if (ID < 1)
                {
                    return(false);
                }
                Amount.ToString();
            }
            catch (NullReferenceException) { return(false); }

            var newAmount = Amount + change;

            if (updateDate > LastUpdateDate)
            {
                LastUpdateDate = updateDate;
            }

            using (var conn = DataAccess.EstablishConnection())
            {
                var cmd = conn.CreateCommand();
                try
                {
                    cmd.CommandText = "UPDATE tblAccounts SET Acc_Amount = @Amount, Acc_LastUpdateDate = @LastUpdateDate, RecordBy = @RecordBy, RecordDate = @RecordDate WHERE AccountID = @AccountID";
                    cmd.Parameters.Add("@Amount", DbType.Double).Value         = newAmount;
                    cmd.Parameters.Add("@LastUpdateDate", DbType.String).Value = LastUpdateDate.ToString("MM/dd/yyyy");
                    cmd.Parameters.Add("@RecordBy", DbType.String).Value       = RecordBy;
                    cmd.Parameters.Add("@RecordDate", DbType.String).Value     = RecordDate.ToString("yyyy-MM-dd HH:mm");
                    cmd.Parameters.Add("@AccountID", DbType.Int32).Value       = ID;

                    if (conn.State == ConnectionState.Closed)
                    {
                        conn.Open();
                    }

                    cmd.ExecuteNonQuery();
                }
                finally { conn.Close(); cmd.Dispose(); }
            }

            return(true);
        }
Ejemplo n.º 7
0
        public override string ToString()
        {
            IFormatProvider culture = new System.Globalization.CultureInfo("en-US");

            return(RecordDate.GetDateTimeFormats('D', culture).GetValue(1) + " " + Description);
        }
        public void SubmitAccount()
        {
            var valid = true;

            try
            {
                if (ProfileID < 1)
                {
                    valid = false;
                }
                if (Name == "")
                {
                    valid = false;
                }
                if (Amount < 0.00)
                {
                    valid = false;
                }
                if (LastUpdateDate < DateTime.Parse("2000/01/01"))
                {
                    valid = false;
                }
                if (RecordBy == "")
                {
                    valid = false;
                }
                if (RecordDate < DateTime.Parse("2000/01/01"))
                {
                    valid = false;
                }
            }
            catch (NullReferenceException) { valid = false; }

            if (!valid)
            {
                throw new DatabaseException("Invalid parameters provided");
            }

            using (var conn = DataAccess.EstablishConnection())
            {
                var checkCmd = conn.CreateCommand();
                try
                {
                    checkCmd.CommandText = "SELECT AccountID FROM tblAccounts WHERE Acc_Name = @Name AND ProfileID = @ProfileID";
                    checkCmd.Parameters.Add("@ProfileID", DbType.Int32).Value = ProfileID;
                    checkCmd.Parameters.Add("@Name", DbType.String).Value     = Name;

                    if (conn.State == ConnectionState.Closed)
                    {
                        conn.Open();
                    }

                    var read = checkCmd.ExecuteReader();

                    if (read.HasRows)
                    {
                        throw new DatabaseException("An account with this name already exists");
                    }
                    read.Close();
                }
                finally { conn.Close(); checkCmd.Dispose(); }

                var cmd = conn.CreateCommand();
                try
                {
                    cmd.CommandText = "INSERT INTO tblAccounts (ProfileID, Acc_Name, Acc_Amount, Acc_LastUpdateDate, RecordBy, RecordDate) VALUES (@ProfileID, @Name, @Amount, @LastUpdateDate, @RecordBy, @RecordDate)";
                    cmd.Parameters.Add("@ProfileID", DbType.Int32).Value       = ProfileID;
                    cmd.Parameters.Add("@Name", DbType.String).Value           = Name;
                    cmd.Parameters.Add("@Amount", DbType.Double).Value         = Amount;
                    cmd.Parameters.Add("@LastUpdateDate", DbType.String).Value = LastUpdateDate.ToString("MM/dd/yyyy");
                    cmd.Parameters.Add("@RecordBy", DbType.String).Value       = RecordBy;
                    cmd.Parameters.Add("@RecordDate", DbType.String).Value     = RecordDate.ToString("MM/dd/yyyy HH:mm");

                    if (conn.State == ConnectionState.Closed)
                    {
                        conn.Open();
                    }

                    cmd.ExecuteNonQuery();
                }
                finally { conn.Close(); cmd.Dispose(); }
            }
        }
Ejemplo n.º 9
0
        public static Record[] ReadRecord()
        {
            var records = new List <Record>();
            var handle  = HIDAPI.hid_open(VENDOR_ID, PRODUCT_ID, IntPtr.Zero);

            if (handle.ToInt32() <= 0)
            {
                Debug.Print("Could not open device.");

                return(null);
            }

            try
            {
                var outBuffer = new byte[]
                {
                    0x02,           // USB Read Report
                    0x02,           // Size of payload
                    READ_RECORD,    // READ_RECORD
                    READ_RECORD     // Checksum (only one byte so same as command)
                };

                var numWritten = HIDAPI.hid_write(handle, outBuffer, outBuffer.Length);

                if (numWritten < 4)
                {
                    Debug.Print("Failed to write request to device.");

                    return(null);
                }

                using (var mem = new MemoryStream(1024))
                {
                    var payload = PerformRead(handle);

                    if (payload == null)
                    {
                        Debug.Print("Could not read data from device.");

                        return(null);
                    }

                    if (payload[0] != READ_RECORD)
                    {
                        Debug.Print("Payload is not a READ_RECORD result.");

                        return(null);
                    }

                    var totalSize = payload[1];
                    var data      = new byte[payload.Length - 2];

                    Array.Copy(payload, 2, data, 0, data.Length);

                    mem.Write(data, 0, data.Length);

                    while (mem.Length < totalSize)
                    {
                        data = PerformRead(handle);

                        if (data == null)
                        {
                            Debug.Print("Could not read data from device.");

                            return(null);
                        }

                        if ((mem.Length + data.Length) >= totalSize)
                        {
                            mem.Write(data, 0, data.Length - 1); // -1 because we don't want to include the final checksum byte
                        }
                        else
                        {
                            mem.Write(data, 0, data.Length);
                        }
                    }

                    mem.Seek(0, SeekOrigin.Begin);

                    while (mem.Position < mem.Length)
                    {
                        var type    = Utils.ReadByte(mem);
                        var item    = type;
                        var hasDate = (type & ITEM_DATE) != 0;
                        var hasTime = (type & ITEM_TIME) != 0;

                        if (hasDate)
                        {
                            item = Convert.ToByte(item & ~ITEM_DATE);
                        }

                        if (hasTime)
                        {
                            item = Convert.ToByte(item & ~ITEM_TIME);
                        }

                        var valueBytes = new byte[0];

                        switch (item)
                        {
                        case ITEM_INTEMP:
                            valueBytes = Utils.ReadBytes(mem, 2);
                            break;

                        case ITEM_OUTTEMP:
                            valueBytes = Utils.ReadBytes(mem, 2);
                            break;

                        case ITEM_DEWPOINT:
                            valueBytes = Utils.ReadBytes(mem, 2);
                            break;

                        case ITEM_WINDCHILL:
                            valueBytes = Utils.ReadBytes(mem, 2);
                            break;

                        case ITEM_HEATINDEX:
                            valueBytes = Utils.ReadBytes(mem, 2);
                            break;

                        case ITEM_INHUMI:
                            valueBytes = Utils.ReadBytes(mem, 1);
                            break;

                        case ITEM_OUTHUMI:
                            valueBytes = Utils.ReadBytes(mem, 1);
                            break;

                        case ITEM_ABSBARO:
                            valueBytes = Utils.ReadBytes(mem, 2);
                            break;

                        case ITEM_RELBARO:
                            valueBytes = Utils.ReadBytes(mem, 2);
                            break;

                        case ITEM_WINDDIRECTION:
                            valueBytes = Utils.ReadBytes(mem, 2);
                            break;

                        case ITEM_WINDSPEED:
                            valueBytes = Utils.ReadBytes(mem, 2);
                            break;

                        case ITEM_GUSTSPEED:
                            valueBytes = Utils.ReadBytes(mem, 2);
                            break;

                        case ITEM_RAINEVENT:
                            valueBytes = Utils.ReadBytes(mem, 4);
                            break;

                        case ITEM_RAINRATE:
                            valueBytes = Utils.ReadBytes(mem, 4);
                            break;

                        case ITEM_RAINHOUR:
                            valueBytes = Utils.ReadBytes(mem, 4);
                            break;

                        case ITEM_RAINDAY:
                            valueBytes = Utils.ReadBytes(mem, 4);
                            break;

                        case ITEM_RAINWEEK:
                            valueBytes = Utils.ReadBytes(mem, 4);
                            break;

                        case ITEM_RAINMONTH:
                            valueBytes = Utils.ReadBytes(mem, 4);
                            break;

                        case ITEM_RAINYEAR:
                            valueBytes = Utils.ReadBytes(mem, 4);
                            break;

                        case ITEM_RAINTOTALS:
                            valueBytes = Utils.ReadBytes(mem, 4);
                            break;

                        case ITEM_LIGHT:
                            valueBytes = Utils.ReadBytes(mem, 4);
                            break;

                        case ITEM_UV:
                            valueBytes = Utils.ReadBytes(mem, 2);
                            break;

                        case ITEM_UVI:
                            valueBytes = Utils.ReadBytes(mem, 1);
                            break;

                        default:
                            return(null);
                        }

                        RecordDate date = null;
                        RecordTime time = null;

                        if (hasDate)
                        {
                            var dateBuffer = new byte[3];
                            var numRead    = mem.Read(dateBuffer, 0, dateBuffer.Length);

                            if (numRead < dateBuffer.Length)
                            {
                                Debug.Print("Could not read date from memory.");

                                return(null);
                            }

                            date = new RecordDate(dateBuffer[0], dateBuffer[1], dateBuffer[2]);
                        }

                        if (hasTime)
                        {
                            var timeBuffer = new byte[2];
                            var numRead    = mem.Read(timeBuffer, 0, timeBuffer.Length);

                            if (numRead < timeBuffer.Length)
                            {
                                Debug.Print("Could not read time from memory.");

                                return(null);
                            }

                            time = new RecordTime(timeBuffer[0], timeBuffer[1]);
                        }

                        Record record = null;

                        switch (item)
                        {
                        case ITEM_INTEMP:
                        {
                            ushort value = BitConverter.ToUInt16(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record16(item, date, time, value);

                            break;
                        }

                        case ITEM_OUTTEMP:
                        {
                            ushort value = BitConverter.ToUInt16(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record16(item, date, time, value);

                            break;
                        }

                        case ITEM_DEWPOINT:
                        {
                            ushort value = BitConverter.ToUInt16(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record16(item, date, time, value);

                            break;
                        }

                        case ITEM_WINDCHILL:
                        {
                            ushort value = BitConverter.ToUInt16(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record16(item, date, time, value);

                            break;
                        }

                        case ITEM_HEATINDEX:
                        {
                            ushort value = BitConverter.ToUInt16(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record16(item, date, time, value);

                            break;
                        }

                        case ITEM_INHUMI:
                        {
                            record = new Record8(item, date, time, valueBytes[0]);

                            break;
                        }

                        case ITEM_OUTHUMI:
                        {
                            record = new Record8(item, date, time, valueBytes[0]);

                            break;
                        }

                        case ITEM_ABSBARO:
                        {
                            ushort value = BitConverter.ToUInt16(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record16(item, date, time, value);

                            break;
                        }

                        case ITEM_RELBARO:
                        {
                            ushort value = BitConverter.ToUInt16(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record16(item, date, time, value);

                            break;
                        }

                        case ITEM_WINDDIRECTION:
                        {
                            ushort value = BitConverter.ToUInt16(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record16(item, date, time, value);

                            break;
                        }

                        case ITEM_WINDSPEED:
                        {
                            ushort value = BitConverter.ToUInt16(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record16(item, date, time, value);

                            break;
                        }

                        case ITEM_GUSTSPEED:
                        {
                            ushort value = BitConverter.ToUInt16(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record16(item, date, time, value);

                            break;
                        }

                        case ITEM_RAINEVENT:
                        {
                            uint value = BitConverter.ToUInt32(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record32(item, date, time, value);

                            break;
                        }

                        case ITEM_RAINRATE:
                        {
                            uint value = BitConverter.ToUInt32(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record32(item, date, time, value);

                            break;
                        }

                        case ITEM_RAINHOUR:
                        {
                            uint value = BitConverter.ToUInt32(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record32(item, date, time, value);

                            break;
                        }

                        case ITEM_RAINDAY:
                        {
                            uint value = BitConverter.ToUInt32(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record32(item, date, time, value);

                            break;
                        }

                        case ITEM_RAINWEEK:
                        {
                            uint value = BitConverter.ToUInt32(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record32(item, date, time, value);

                            break;
                        }

                        case ITEM_RAINMONTH:
                        {
                            uint value = BitConverter.ToUInt32(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record32(item, date, time, value);

                            break;
                        }

                        case ITEM_RAINYEAR:
                        {
                            uint value = BitConverter.ToUInt32(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record32(item, date, time, value);

                            break;
                        }

                        case ITEM_RAINTOTALS:
                        {
                            uint value = BitConverter.ToUInt32(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record32(item, date, time, value);

                            break;
                        }

                        case ITEM_LIGHT:
                        {
                            uint value = BitConverter.ToUInt32(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record32(item, date, time, value);

                            break;
                        }

                        case ITEM_UV:
                        {
                            ushort value = BitConverter.ToUInt16(Utils.ReverseBytes(valueBytes), 0);

                            record = new Record16(item, date, time, value);

                            break;
                        }

                        case ITEM_UVI:
                        {
                            record = new Record8(item, date, time, valueBytes[0]);

                            break;
                        }
                        }

                        if (record != null)
                        {
                            records.Add(record);
                        }
                    }
                }
            }
            finally
            {
                HIDAPI.hid_close(handle);
            }

            return(records.ToArray());
        }
Ejemplo n.º 10
0
 internal Record32(byte item, RecordDate date, RecordTime time, uint value) : base(item, date, time)
 {
     Value = value;
 }
Ejemplo n.º 11
0
 internal Record16(byte item, RecordDate date, RecordTime time, ushort value) : base(item, date, time)
 {
     Value = value;
 }
Ejemplo n.º 12
0
 internal Record(byte item, RecordDate date, RecordTime time)
 {
     Item = item;
     Date = date;
     Time = time;
 }