コード例 #1
0
    public static bool Share2User(CDatabase db, CUser user, int share2UserID, int[] IDs)
    {
        if (!user.CanDo(CUser.ACL.EDIT) || !user.CanDo(CUser.ACL.EDITUSERS))
        {
            return(false);
        }

        try
        {
            string strIDs = "";
            using (MySqlCommand cmd = new MySqlCommand("INSERT IGNORE INTO trackers2users (UserID, TrackerID) VALUES (" + share2UserID + ", ?TrackerID)", db.connection))
            {
                cmd.Parameters.Add("?TrackerID", MySqlDbType.Int32);
                for (int i = 0; i < IDs.Length; i++)
                {
                    strIDs += ((i != 0) ? "," : "") + IDs[i];
                    cmd.Parameters["?TrackerID"].Value = IDs[i];
                    cmd.ExecuteNonQuery();
                }
            }
            //удалить неактуальыне
            using (MySqlCommand cmd = new MySqlCommand("DELETE FROM trackers2users WHERE UserID=" + share2UserID + ((strIDs.Length > 0) ? " AND TrackerID NOT IN (" + strIDs + ")" : ""), db.connection))
                cmd.ExecuteNonQuery();
        }
        catch (Exception e)
        {
            Debug.Assert(false, e.ToString());
            return(false);
        }
        return(true);
    }
コード例 #2
0
    public static bool SetOwner(CDatabase db, CUser user, int newOwnerID, int[] IDs)
    {
        if (!user.CanDo(CUser.ACL.EDIT) || !user.CanDo(CUser.ACL.EDITUSERS))
        {
            return(false);
        }

        try
        {
            using (MySqlCommand cmd = new MySqlCommand("UPDATE trackers SET UserID = " + newOwnerID + "  WHERE ID = ?ID", db.connection))
            {
                cmd.Parameters.Add("?ID", MySqlDbType.Int32);
                for (int i = 0; i < IDs.Length; i++)
                {
                    cmd.Parameters["?ID"].Value = IDs[i];
                    cmd.ExecuteNonQuery();
                }
            }
        }
        catch (Exception e)
        {
            Debug.Assert(false, e.ToString());
            return(false);
        }
        return(true);
    }
コード例 #3
0
 public override DBQuery GetDeleteQuery(int ID, CUser user)
 {
     if (!user.CanDo(CUser.ACL.EDIT) || !user.CanDo(CUser.ACL.EDIT_TRACKERS_IMEI))
     {
         return(null);
     }
     return(new DBQuery("DELETE FROM points WHERE TrackerID=" + ID + " AND TrackerID IN (SELECT ID FROM Trackers WHERE ID=" + ID + " AND UserID=" + user.m_nID + ");" +
                        "DELETE FROM Events WHERE TrackerID=" + ID + " AND TrackerID IN (SELECT ID FROM Trackers WHERE ID=" + ID + " AND UserID=" + user.m_nID + ");" +
                        "DELETE FROM Commands WHERE TrackerID=" + ID + " AND TrackerID IN (SELECT ID FROM Trackers WHERE ID=" + ID + " AND UserID=" + user.m_nID + ");" +
                        "DELETE FROM Trackers WHERE ID=" + ID + " AND UserID=" + user.m_nID + ";" +
                        "DELETE FROM trackers2users WHERE TrackerID=" + ID + " AND UserID=" + user.m_nID + ";"));
 }
コード例 #4
0
    public bool UpdateGroupIDs(CDatabase db, CUser user, CTracker obj, int[] groupIDs)
    {
        if (!user.CanDo(CUser.ACL.EDIT))
        {
            return(false);
        }

        try
        {
            string strIDs = "";
            //добавить новые группы
            using (MySqlCommand cmd = new MySqlCommand("INSERT IGNORE INTO trackers2groups(GroupID, TrackerID) VALUES (?GroupID, " + obj.m_nID + ")", db.connection))
            {
                cmd.Parameters.Add("?GroupID", MySqlDbType.Int32);
                for (int i = 0; i < groupIDs.Length; i++)
                {
                    cmd.Parameters["?GroupID"].Value = groupIDs[i];
                    cmd.ExecuteNonQuery();

                    strIDs += ((i != 0) ? "," : "") + groupIDs[i];
                }
            }

            //удалить неактуальыне
            using (MySqlCommand cmd = new MySqlCommand("DELETE FROM trackers2groups WHERE TrackerID = " + obj.m_nID + " " +
                                                       "AND GroupID IN (SELECT ID FROM TrackerGroups WHERE UserID = " + user.m_nID + ") " +
                                                       ((strIDs.Length > 0) ? " AND GroupID NOT IN (" + strIDs + ")" : ""), db.connection))
                cmd.ExecuteNonQuery();
        }
        catch (Exception e)
        {
            Debug.Assert(false, e.ToString());
            return(false);
        }
        return(true);
    }
コード例 #5
0
    public bool Update(CDatabase db, CUser user, CTracker obj)//TODO: пока настраивает только владелец
    {
        if (!user.CanDo(CUser.ACL.EDIT))
        {
            return(true);
        }
        try
        {
            string strQuery = "UPDATE Trackers SET Name=?Name, Comment=?Comment, DeviceType = ?DeviceType, IconID=?IconID, " +
                              "HistoryColor=?Color, Phone=?Phone, SleepPeriod=?SleepPeriod, " +
                              "ParkRadius=?ParkRadius, MinParkTime=?MinParkTime, MinIdleTime=?MinIdleTime, " +
                              "AlarmParkTime=?AlarmParkTime, IMEI=?IMEI, Flags=?Flags," +
                              "FuelExpense=?FuelExpense, FuelExpenseHr=?FuelExpenseHr, MaxSpeed=?MaxSpeed, MinDrain=?MinDrain, MinDrainSpeed=?MinDrainSpeed, " +
                              "StateNumber=?StateNumber, DefLat=?DefLat, DefLng=?DefLng," +
                              "DaysToStore=?DaysToStore WHERE ID=" + obj.m_nID + " AND UserID=" + user.m_nID;
            if (!user.CanDo(CUser.ACL.EDIT_TRACKERS_IMEI))
            {
                strQuery = strQuery.Replace("IMEI=?IMEI,", "");
            }
            using (MySqlCommand cmd = new MySqlCommand(strQuery, db.connection))
            {
                cmd.Parameters.AddWithValue("?Name", obj.m_strName);
                cmd.Parameters.AddWithValue("?Comment", obj.m_strComment);
                cmd.Parameters.AddWithValue("?DeviceType", obj.m_strDeviceType);
                cmd.Parameters.AddWithValue("?Flags", obj.m_strFlags);
                cmd.Parameters.AddWithValue("?IconID", obj.m_nIconID);
                cmd.Parameters.AddWithValue("?Color", obj.m_strColor);
                cmd.Parameters.AddWithValue("?Phone", obj.m_strPhone);
                cmd.Parameters.AddWithValue("?SleepPeriod", obj.m_Timeout);
                cmd.Parameters.AddWithValue("?ParkRadius", obj.m_ParkRadius);
                cmd.Parameters.AddWithValue("?MaxSpeed", obj.m_MaxSpeed);
                cmd.Parameters.AddWithValue("?AlarmParkTime", obj.m_AlarmParkTime);

                if (obj.m_IMEI != 0)
                {
                    cmd.Parameters.AddWithValue("?IMEI", obj.m_IMEI);
                }
                else
                {
                    cmd.Parameters.AddWithValue("?IMEI", null);
                }

                cmd.Parameters.AddWithValue("?MinParkTime", obj.m_MinParkTime);
                cmd.Parameters.AddWithValue("?MinIdleTime", obj.m_MinIdleTime);
                cmd.Parameters.AddWithValue("?FuelExpense", obj.m_fFuelExpensePerKm);
                cmd.Parameters.AddWithValue("?FuelExpenseHr", obj.m_fFuelExpensePerHr);
                cmd.Parameters.AddWithValue("?MinDrain", obj.m_fMinDrain);
                cmd.Parameters.AddWithValue("?MinDrainSpeed", obj.m_fMinDrainSpeed);
                cmd.Parameters.AddWithValue("?DaysToStore", obj.m_nDaysToStore);

                //cmd.Parameters.AddWithValue("?InstallDate", obj.m_dtInstallDate);
                cmd.Parameters.AddWithValue("?StateNumber", obj.m_strStateNumber);
                cmd.ExecuteNonQuery();
            }
        }
        catch (Exception e)
        {
            Debug.Assert(false, e.ToString());
            return(false);
        }
        return(true);
    }
コード例 #6
0
 public override DBQuery GetInsertQuery(CUser user, CTracker tracker)
 {
     return((user.CanDo(CUser.ACL.EDIT) && user.CanDo(CUser.ACL.EDIT_TRACKERS_IMEI)) ? new DBQuery("INSERT INTO Trackers (UserID, CreateDate) VALUES ('" + user.m_nID + "', " + CTime.GetTime(DateTime.UtcNow) + ")") : null);
 }