public bool ClassifiedUpdate(OSDMap json, ref JsonRpcResponse response) { if (!json.ContainsKey("params")) { response.Error.Code = ErrorCode.ParseError; response.Error.Message = "Error parsing classified update request"; m_log.DebugFormat("Classified Update Request"); return(false); } string result = string.Empty; UserClassifiedAdd ad = new UserClassifiedAdd(); object Ad = (object)ad; OSD.DeserializeMembers(ref Ad, (OSDMap)json["params"]); if (Service.ClassifiedUpdate(ad, ref result)) { response.Result = OSD.SerializeMembers(ad); return(true); } response.Error.Code = ErrorCode.InternalError; response.Error.Message = string.Format("{0}", result); return(false); }
public bool ClassifiedUpdate(OSDMap json, ref JsonRpcResponse response) { OSD tmpParams; if (!json.TryGetValue("params", out tmpParams) || !(tmpParams is OSDMap)) { response.Error.Code = ErrorCode.ParseError; response.Error.Message = "Error parsing classified update request"; m_log.DebugFormat("Classified Update Request"); return(false); } string result = string.Empty; UserClassifiedAdd ad = new UserClassifiedAdd(); object Ad = ad; OSD.DeserializeMembers(ref Ad, (OSDMap)tmpParams); //If no maturity bits are set, set PG maturity bit. This works // around a viewer bug. It simplifies the ability to search ads // based on maturity level. 0x4e is bits 1 (old viewers mature), 2 (pg), 3 (Mature) and 6 (Adult). if ((ad.Flags & 0x4e) == 0) { ad.Flags |= 0x04; } if (Service.ClassifiedUpdate(ad, ref result)) { response.Result = OSD.SerializeMembers(ad); return(true); } response.Error.Code = ErrorCode.InternalError; response.Error.Message = string.Format("{0}", result); return(false); }
/// <summary> /// Classifieds info update. /// </summary> /// <param name='queryclassifiedID'> /// Queryclassified I. /// </param> /// <param name='queryCategory'> /// Query category. /// </param> /// <param name='queryName'> /// Query name. /// </param> /// <param name='queryDescription'> /// Query description. /// </param> /// <param name='queryParcelID'> /// Query parcel I. /// </param> /// <param name='queryParentEstate'> /// Query parent estate. /// </param> /// <param name='querySnapshotID'> /// Query snapshot I. /// </param> /// <param name='queryGlobalPos'> /// Query global position. /// </param> /// <param name='queryclassifiedFlags'> /// Queryclassified flags. /// </param> /// <param name='queryclassifiedPrice'> /// Queryclassified price. /// </param> /// <param name='remoteClient'> /// Remote client. /// </param> public void ClassifiedInfoUpdate(UUID queryclassifiedID, uint queryCategory, string queryName, string queryDescription, UUID queryParcelID, uint queryParentEstate, UUID querySnapshotID, Vector3 queryGlobalPos, byte queryclassifiedFlags, int queryclassifiedPrice, IClientAPI remoteClient) { Scene s = (Scene)remoteClient.Scene; IMoneyModule money = s.RequestModuleInterface <IMoneyModule>(); if (money != null) { if (!money.AmountCovered(remoteClient.AgentId, queryclassifiedPrice)) { remoteClient.SendAgentAlertMessage("You do not have enough money to create requested classified.", false); return; } money.ApplyCharge(remoteClient.AgentId, queryclassifiedPrice, MoneyTransactionType.ClassifiedCharge); } UserClassifiedAdd ad = new UserClassifiedAdd(); Vector3 pos = remoteClient.SceneAgent.AbsolutePosition; ILandObject land = s.LandChannel.GetLandObject(pos.X, pos.Y); ScenePresence p = FindPresence(remoteClient.AgentId); string serverURI = string.Empty; GetUserProfileServerURI(remoteClient.AgentId, out serverURI); if (land == null) { ad.ParcelName = string.Empty; } else { ad.ParcelName = land.LandData.Name; } ad.CreatorId = remoteClient.AgentId; ad.ClassifiedId = queryclassifiedID; ad.Category = Convert.ToInt32(queryCategory); ad.Name = queryName; ad.Description = queryDescription; ad.ParentEstate = Convert.ToInt32(queryParentEstate); ad.SnapshotId = querySnapshotID; ad.SimName = remoteClient.Scene.RegionInfo.RegionName; ad.GlobalPos = queryGlobalPos.ToString(); ad.Flags = queryclassifiedFlags; ad.Price = queryclassifiedPrice; ad.ParcelId = p.currentParcelUUID; object Ad = ad; OSD.SerializeMembers(Ad); if (!rpc.JsonRpcRequest(ref Ad, "classified_update", serverURI, UUID.Random().ToString())) { remoteClient.SendAgentAlertMessage( "Error updating classified", false); return; } }
public bool ClassifiedInfoRequest(ref UserClassifiedAdd ad, ref string result) { if (ProfilesData.GetClassifiedInfo(ref ad, ref result)) { return(true); } return(false); }
public bool ClassifiedUpdate(UserClassifiedAdd ad, ref string result) { if (!ProfilesData.UpdateClassifiedRecord(ad, ref result)) { return(false); } result = "success"; return(true); }
public void ClassifiedInfoRequest(UUID queryClassifiedID, IClientAPI remoteClient) { UUID target = remoteClient.AgentId; UserClassifiedAdd ad = new UserClassifiedAdd(); ad.ClassifiedId = queryClassifiedID; lock (m_classifiedCache) { if (m_classifiedCache.ContainsKey(queryClassifiedID)) { target = m_classifiedCache[queryClassifiedID]; m_classifiedInterest[queryClassifiedID]--; if (m_classifiedInterest[queryClassifiedID] == 0) { m_classifiedInterest.Remove(queryClassifiedID); m_classifiedCache.Remove(queryClassifiedID); } } } string serverURI = string.Empty; GetUserProfileServerURI(target, out serverURI); object Ad = (object)ad; if (!rpc.JsonRpcRequest(ref Ad, "classifieds_info_query", serverURI, UUID.Random().ToString())) { remoteClient.SendAgentAlertMessage( "Error getting classified info", false); return; } ad = (UserClassifiedAdd)Ad; if (ad.CreatorId == UUID.Zero) { return; } Vector3 globalPos = new Vector3(); Vector3.TryParse(ad.GlobalPos, out globalPos); remoteClient.SendClassifiedInfoReply(ad.ClassifiedId, ad.CreatorId, (uint)ad.CreationDate, (uint)ad.ExpirationDate, (uint)ad.Category, ad.Name, ad.Description, ad.ParcelId, (uint)ad.ParentEstate, ad.SnapshotId, ad.SimName, globalPos, ad.ParcelName, ad.Flags, ad.Price); }
public bool GetClassifiedInfo(ref UserClassifiedAdd ad, ref string result) { string query = string.Empty; query += "SELECT * FROM classifieds WHERE "; query += "classifieduuid = ?AdId"; try { using (MySqlConnection dbcon = new MySqlConnection(ConnectionString)) { dbcon.Open(); using (MySqlCommand cmd = new MySqlCommand(query, dbcon)) { cmd.Parameters.AddWithValue("?AdId", ad.ClassifiedId.ToString()); using (MySqlDataReader reader = cmd.ExecuteReader()) { if(reader.Read ()) { ad.CreatorId = new UUID(reader.GetGuid("creatoruuid")); ad.ParcelId = new UUID(reader.GetGuid("parceluuid")); ad.SnapshotId = new UUID(reader.GetGuid("snapshotuuid")); ad.CreationDate = Convert.ToInt32(reader["creationdate"]); ad.ExpirationDate = Convert.ToInt32(reader["expirationdate"]); ad.ParentEstate = Convert.ToInt32(reader["parentestate"]); ad.Flags = (byte)reader.GetUInt32("classifiedflags"); ad.Category = reader.GetInt32("category"); ad.Price = reader.GetInt16("priceforlisting"); ad.Name = reader.GetString("name"); ad.Description = reader.GetString("description"); ad.SimName = reader.GetString("simname"); ad.GlobalPos = reader.GetString("posglobal"); ad.ParcelName = reader.GetString("parcelname"); } } } dbcon.Close(); } } catch (Exception e) { m_log.DebugFormat("[PROFILES_DATA]" + ": GetPickInfo exception {0}", e.Message); } return true; }
/// <summary> /// Classifieds info update. /// </summary> /// <param name='queryclassifiedID'> /// Queryclassified I. /// </param> /// <param name='queryCategory'> /// Query category. /// </param> /// <param name='queryName'> /// Query name. /// </param> /// <param name='queryDescription'> /// Query description. /// </param> /// <param name='queryParcelID'> /// Query parcel I. /// </param> /// <param name='queryParentEstate'> /// Query parent estate. /// </param> /// <param name='querySnapshotID'> /// Query snapshot I. /// </param> /// <param name='queryGlobalPos'> /// Query global position. /// </param> /// <param name='queryclassifiedFlags'> /// Queryclassified flags. /// </param> /// <param name='queryclassifiedPrice'> /// Queryclassified price. /// </param> /// <param name='remoteClient'> /// Remote client. /// </param> public void ClassifiedInfoUpdate(UUID queryclassifiedID, uint queryCategory, string queryName, string queryDescription, UUID queryParcelID, uint queryParentEstate, UUID querySnapshotID, Vector3 queryGlobalPos, byte queryclassifiedFlags, int queryclassifiedPrice, IClientAPI remoteClient) { UserClassifiedAdd ad = new UserClassifiedAdd(); Scene s = (Scene)remoteClient.Scene; Vector3 pos = remoteClient.SceneAgent.AbsolutePosition; ILandObject land = s.LandChannel.GetLandObject(pos.X, pos.Y); ScenePresence p = FindPresence(remoteClient.AgentId); // Vector3 avaPos = p.AbsolutePosition; string serverURI = string.Empty; GetUserProfileServerURI(remoteClient.AgentId, out serverURI); if (land == null) { ad.ParcelName = string.Empty; } else { ad.ParcelName = land.LandData.Name; } ad.CreatorId = remoteClient.AgentId; ad.ClassifiedId = queryclassifiedID; ad.Category = Convert.ToInt32(queryCategory); ad.Name = queryName; ad.Description = queryDescription; ad.ParentEstate = Convert.ToInt32(queryParentEstate); ad.SnapshotId = querySnapshotID; ad.SimName = remoteClient.Scene.RegionInfo.RegionName; ad.GlobalPos = queryGlobalPos.ToString(); ad.Flags = queryclassifiedFlags; ad.Price = queryclassifiedPrice; ad.ParcelId = p.currentParcelUUID; object Ad = ad; OSD.SerializeMembers(Ad); if (!JsonRpcRequest(ref Ad, "classified_update", serverURI, UUID.Random().ToString())) { remoteClient.SendAgentAlertMessage( "Error updating classified", false); } }
public bool GetClassifiedInfo(ref UserClassifiedAdd ad, ref string result) { string query = string.Empty; query += "SELECT * FROM classifieds WHERE "; query += "classifieduuid = :AdId"; try { using (NpgsqlConnection dbcon = new NpgsqlConnection(ConnectionString)) { dbcon.Open(); using (NpgsqlCommand cmd = new NpgsqlCommand(query, dbcon)) { cmd.Parameters.Add(m_database.CreateParameter("AdId", ad.ClassifiedId)); using (NpgsqlDataReader reader = cmd.ExecuteReader()) { if (reader.Read()) { ad.CreatorId = DBGuid.FromDB(reader["creatoruuid"]); ad.ParcelId = DBGuid.FromDB(reader["parceluuid"]); ad.SnapshotId = DBGuid.FromDB(reader["snapshotuuid"]); ad.CreationDate = Convert.ToInt32(reader["creationdate"]); ad.ExpirationDate = Convert.ToInt32(reader["expirationdate"]); ad.ParentEstate = Convert.ToInt32(reader["parentestate"]); ad.Flags = (byte)Convert.ToInt16(reader["classifiedflags"]); ad.Category = Convert.ToInt32(reader["category"]); ad.Price = Convert.ToInt16(reader["priceforlisting"]); ad.Name = reader["name"].ToString(); ad.Description = reader["description"].ToString(); ad.SimName = reader["simname"].ToString(); ad.GlobalPos = reader["posglobal"].ToString(); ad.ParcelName = reader["parcelname"].ToString(); } } } dbcon.Close(); } } catch (Exception e) { m_log.Error("[PROFILES_DATA]: GetClassifiedInfo exception ", e); } return(true); }
public bool GetClassifiedInfo(ref UserClassifiedAdd ad, ref string result) { IDataReader reader = null; string query = string.Empty; query += "SELECT * FROM classifieds WHERE "; query += "classifieduuid = :AdId"; try { using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand()) { cmd.CommandText = query; cmd.Parameters.AddWithValue(":AdId", ad.ClassifiedId.ToString()); using (reader = cmd.ExecuteReader()) { if (reader.Read()) { ad.CreatorId = new UUID(reader["creatoruuid"].ToString()); ad.ParcelId = new UUID(reader["parceluuid"].ToString()); ad.SnapshotId = new UUID(reader["snapshotuuid"].ToString()); ad.CreationDate = Convert.ToInt32(reader["creationdate"]); ad.ExpirationDate = Convert.ToInt32(reader["expirationdate"]); ad.ParentEstate = Convert.ToInt32(reader["parentestate"]); ad.Flags = (byte)Convert.ToUInt32(reader["classifiedflags"]); ad.Category = Convert.ToInt32(reader["category"]); ad.Price = Convert.ToInt16(reader["priceforlisting"]); ad.Name = reader["name"].ToString(); ad.Description = reader["description"].ToString(); ad.SimName = reader["simname"].ToString(); ad.GlobalPos = reader["posglobal"].ToString(); ad.ParcelName = reader["parcelname"].ToString(); } } } } catch (Exception e) { m_log.DebugFormat("[PROFILES_DATA]" + ": GetPickInfo exception {0}", e.Message); } return(true); }
public bool UpdateClassifiedRecord(UserClassifiedAdd ad, ref string result) { string query = string.Empty; query += "INSERT INTO classifieds ("; query += "`classifieduuid`,"; query += "`creatoruuid`,"; query += "`creationdate`,"; query += "`expirationdate`,"; query += "`category`,"; query += "`name`,"; query += "`description`,"; query += "`parceluuid`,"; query += "`parentestate`,"; query += "`snapshotuuid`,"; query += "`simname`,"; query += "`posglobal`,"; query += "`parcelname`,"; query += "`classifiedflags`,"; query += "`priceforlisting`) "; query += "VALUES ("; query += "?ClassifiedId,"; query += "?CreatorId,"; query += "?CreatedDate,"; query += "?ExpirationDate,"; query += "?Category,"; query += "?Name,"; query += "?Description,"; query += "?ParcelId,"; query += "?ParentEstate,"; query += "?SnapshotId,"; query += "?SimName,"; query += "?GlobalPos,"; query += "?ParcelName,"; query += "?Flags,"; query += "?ListingPrice ) "; query += "ON DUPLICATE KEY UPDATE "; query += "category=?Category, "; query += "expirationdate=?ExpirationDate, "; query += "name=?Name, "; query += "description=?Description, "; query += "parentestate=?ParentEstate, "; query += "posglobal=?GlobalPos, "; query += "parcelname=?ParcelName, "; query += "classifiedflags=?Flags, "; query += "priceforlisting=?ListingPrice, "; query += "snapshotuuid=?SnapshotId"; if (string.IsNullOrEmpty(ad.ParcelName)) { ad.ParcelName = "Unknown"; } if (ad.ParcelId == null) { ad.ParcelId = UUID.Zero; } if (string.IsNullOrEmpty(ad.Description)) { ad.Description = "No Description"; } DateTime epoch = new DateTime(1970, 1, 1); DateTime now = DateTime.Now; TimeSpan epochnow = now - epoch; TimeSpan duration; DateTime expiration; TimeSpan epochexp; if (ad.Flags == 2) { duration = new TimeSpan(7, 0, 0, 0); expiration = now.Add(duration); epochexp = expiration - epoch; } else { duration = new TimeSpan(365, 0, 0, 0); expiration = now.Add(duration); epochexp = expiration - epoch; } ad.CreationDate = (int)epochnow.TotalSeconds; ad.ExpirationDate = (int)epochexp.TotalSeconds; try { using (MySqlConnection dbcon = new MySqlConnection(ConnectionString)) { dbcon.Open(); using (MySqlCommand cmd = new MySqlCommand(query, dbcon)) { cmd.Parameters.AddWithValue("?ClassifiedId", ad.ClassifiedId.ToString()); cmd.Parameters.AddWithValue("?CreatorId", ad.CreatorId.ToString()); cmd.Parameters.AddWithValue("?CreatedDate", ad.CreationDate.ToString()); cmd.Parameters.AddWithValue("?ExpirationDate", ad.ExpirationDate.ToString()); cmd.Parameters.AddWithValue("?Category", ad.Category.ToString()); cmd.Parameters.AddWithValue("?Name", ad.Name.ToString()); cmd.Parameters.AddWithValue("?Description", ad.Description.ToString()); cmd.Parameters.AddWithValue("?ParcelId", ad.ParcelId.ToString()); cmd.Parameters.AddWithValue("?ParentEstate", ad.ParentEstate.ToString()); cmd.Parameters.AddWithValue("?SnapshotId", ad.SnapshotId.ToString()); cmd.Parameters.AddWithValue("?SimName", ad.SimName.ToString()); cmd.Parameters.AddWithValue("?GlobalPos", ad.GlobalPos.ToString()); cmd.Parameters.AddWithValue("?ParcelName", ad.ParcelName.ToString()); cmd.Parameters.AddWithValue("?Flags", ad.Flags.ToString()); cmd.Parameters.AddWithValue("?ListingPrice", ad.Price.ToString()); cmd.ExecuteNonQuery(); } } } catch (Exception e) { m_log.DebugFormat("[PROFILES_DATA]" + ": ClassifiedesUpdate exception {0}", e.Message); result = e.Message; return(false); } return(true); }
public bool UpdateClassifiedRecord(UserClassifiedAdd ad, ref string result) { string query = string.Empty; query = @"WITH upsert AS ( UPDATE classifieds SET classifieduuid = :ClassifiedId, creatoruuid = :CreatorId, creationdate = :CreatedDate, expirationdate = :ExpirationDate,category =:Category, name = :Name, description = :Description, parceluuid = :ParcelId, parentestate = :ParentEstate, snapshotuuid = :SnapshotId, simname = :SimName, posglobal = :GlobalPos, parcelname = :ParcelName, classifiedflags = :Flags, priceforlisting = :ListingPrice RETURNING * ) INSERT INTO classifieds (classifieduuid,creatoruuid,creationdate,expirationdate,category,name, description,parceluuid,parentestate,snapshotuuid,simname,posglobal,parcelname,classifiedflags, priceforlisting) SELECT :ClassifiedId,:CreatorId,:CreatedDate,:ExpirationDate,:Category,:Name,:Description, :ParcelId,:ParentEstate,:SnapshotId,:SimName,:GlobalPos,:ParcelName,:Flags,:ListingPrice WHERE NOT EXISTS ( SELECT * FROM upsert )"; if (string.IsNullOrEmpty(ad.ParcelName)) { ad.ParcelName = "Unknown"; } if (ad.ParcelId == null) { ad.ParcelId = UUID.Zero; } if (string.IsNullOrEmpty(ad.Description)) { ad.Description = "No Description"; } DateTime epoch = new DateTime(1970, 1, 1); DateTime now = DateTime.Now; TimeSpan epochnow = now - epoch; TimeSpan duration; DateTime expiration; TimeSpan epochexp; if (ad.Flags == 2) { duration = new TimeSpan(7, 0, 0, 0); expiration = now.Add(duration); epochexp = expiration - epoch; } else { duration = new TimeSpan(365, 0, 0, 0); expiration = now.Add(duration); epochexp = expiration - epoch; } ad.CreationDate = (int)epochnow.TotalSeconds; ad.ExpirationDate = (int)epochexp.TotalSeconds; try { using (NpgsqlConnection dbcon = new NpgsqlConnection(ConnectionString)) { dbcon.Open(); using (NpgsqlCommand cmd = new NpgsqlCommand(query, dbcon)) { cmd.Parameters.Add(m_database.CreateParameter("ClassifiedId", ad.ClassifiedId)); cmd.Parameters.Add(m_database.CreateParameter("CreatorId", ad.CreatorId)); cmd.Parameters.Add(m_database.CreateParameter("CreatedDate", (int)ad.CreationDate)); cmd.Parameters.Add(m_database.CreateParameter("ExpirationDate", (int)ad.ExpirationDate)); cmd.Parameters.Add(m_database.CreateParameter("Category", ad.Category.ToString())); cmd.Parameters.Add(m_database.CreateParameter("Name", ad.Name.ToString())); cmd.Parameters.Add(m_database.CreateParameter("Description", ad.Description.ToString())); cmd.Parameters.Add(m_database.CreateParameter("ParcelId", ad.ParcelId)); cmd.Parameters.Add(m_database.CreateParameter("ParentEstate", (int)ad.ParentEstate)); cmd.Parameters.Add(m_database.CreateParameter("SnapshotId", ad.SnapshotId)); cmd.Parameters.Add(m_database.CreateParameter("SimName", ad.SimName.ToString())); cmd.Parameters.Add(m_database.CreateParameter("GlobalPos", ad.GlobalPos.ToString())); cmd.Parameters.Add(m_database.CreateParameter("ParcelName", ad.ParcelName.ToString())); cmd.Parameters.Add(m_database.CreateParameter("Flags", (int)Convert.ToInt32(ad.Flags))); cmd.Parameters.Add(m_database.CreateParameter("ListingPrice", (int)Convert.ToInt32(ad.Price))); cmd.ExecuteNonQuery(); } } } catch (Exception e) { m_log.Error("[PROFILES_DATA]: ClassifiedsUpdate exception ", e); result = e.Message; return(false); } return(true); }
public bool UpdateClassifiedRecord(UserClassifiedAdd ad, ref string result) { string query = @"INSERT INTO classifieds ( ""classifieduuid"",""creatoruuid"", ""creationdate"", ""expirationdate"", ""category"", ""name"", ""description"", ""parceluuid"", ""parentestate"", ""snapshotuuid"", ""simname"", ""posglobal"", ""parcelname"", ""classifiedflags"", ""priceforlisting"") Select :ClassifiedId, :CreatorId, :CreatedDate, :ExpirationDate, :Category, :Name, :Description, :ParcelId, :ParentEstate, :SnapshotId, :SimName :GlobalPos, :ParcelName, :Flags, :ListingPrice Where not exists( Select ""classifieduuid"" from classifieds where ""classifieduuid"" = :ClassifiedId ); update classifieds set category =:Category, expirationdate = :ExpirationDate, name = :Name, description = :Description, parentestate = :ParentEstate, posglobal = :GlobalPos, parcelname = :ParcelName, classifiedflags = :Flags, priceforlisting = :ListingPrice, snapshotuuid = :SnapshotId where classifieduuid = :ClassifiedId ; "; if (string.IsNullOrEmpty(ad.ParcelName)) { ad.ParcelName = "Unknown"; } if (ad.ParcelId == null) { ad.ParcelId = UUID.Zero; } if (string.IsNullOrEmpty(ad.Description)) { ad.Description = "No Description"; } DateTime epoch = new DateTime(1970, 1, 1); DateTime now = DateTime.Now; TimeSpan epochnow = now - epoch; TimeSpan duration; DateTime expiration; TimeSpan epochexp; if (ad.Flags == 2) { duration = new TimeSpan(7, 0, 0, 0); expiration = now.Add(duration); epochexp = expiration - epoch; } else { duration = new TimeSpan(365, 0, 0, 0); expiration = now.Add(duration); epochexp = expiration - epoch; } ad.CreationDate = (int)epochnow.TotalSeconds; ad.ExpirationDate = (int)epochexp.TotalSeconds; try { using (NpgsqlConnection dbcon = new NpgsqlConnection(ConnectionString)) { dbcon.Open(); using (NpgsqlCommand cmd = new NpgsqlCommand(query, dbcon)) { cmd.Parameters.AddWithValue("ClassifiedId", ad.ClassifiedId.ToString()); cmd.Parameters.AddWithValue("CreatorId", ad.CreatorId.ToString()); cmd.Parameters.AddWithValue("CreatedDate", ad.CreationDate.ToString()); cmd.Parameters.AddWithValue("ExpirationDate", ad.ExpirationDate.ToString()); cmd.Parameters.AddWithValue("Category", ad.Category.ToString()); cmd.Parameters.AddWithValue("Name", ad.Name.ToString()); cmd.Parameters.AddWithValue("Description", ad.Description.ToString()); cmd.Parameters.AddWithValue("ParcelId", ad.ParcelId.ToString()); cmd.Parameters.AddWithValue("ParentEstate", ad.ParentEstate.ToString()); cmd.Parameters.AddWithValue("SnapshotId", ad.SnapshotId.ToString()); cmd.Parameters.AddWithValue("SimName", ad.SimName.ToString()); cmd.Parameters.AddWithValue("GlobalPos", ad.GlobalPos.ToString()); cmd.Parameters.AddWithValue("ParcelName", ad.ParcelName.ToString()); cmd.Parameters.AddWithValue("Flags", ad.Flags.ToString()); cmd.Parameters.AddWithValue("ListingPrice", ad.Price.ToString()); cmd.ExecuteNonQuery(); } } } catch (Exception e) { m_log.DebugFormat("[PROFILES_DATA]" + ": ClassifiedesUpdate exception {0}", e.Message); result = e.Message; return(false); } return(true); }
public bool UpdateClassifiedRecord(UserClassifiedAdd ad, ref string result) { string query = string.Empty; query += "INSERT OR REPLACE INTO classifieds ("; query += "`classifieduuid`,"; query += "`creatoruuid`,"; query += "`creationdate`,"; query += "`expirationdate`,"; query += "`category`,"; query += "`name`,"; query += "`description`,"; query += "`parceluuid`,"; query += "`parentestate`,"; query += "`snapshotuuid`,"; query += "`simname`,"; query += "`posglobal`,"; query += "`parcelname`,"; query += "`classifiedflags`,"; query += "`priceforlisting`) "; query += "VALUES ("; query += ":ClassifiedId,"; query += ":CreatorId,"; query += ":CreatedDate,"; query += ":ExpirationDate,"; query += ":Category,"; query += ":Name,"; query += ":Description,"; query += ":ParcelId,"; query += ":ParentEstate,"; query += ":SnapshotId,"; query += ":SimName,"; query += ":GlobalPos,"; query += ":ParcelName,"; query += ":Flags,"; query += ":ListingPrice ) "; if (string.IsNullOrEmpty(ad.ParcelName)) { ad.ParcelName = "Unknown"; } if (ad.ParcelId == null) { ad.ParcelId = UUID.Zero; } if (string.IsNullOrEmpty(ad.Description)) { ad.Description = "No Description"; } DateTime epoch = new DateTime(1970, 1, 1); DateTime now = DateTime.Now; TimeSpan epochnow = now - epoch; TimeSpan duration; DateTime expiration; TimeSpan epochexp; if (ad.Flags == 2) { duration = new TimeSpan(7, 0, 0, 0); expiration = now.Add(duration); epochexp = expiration - epoch; } else { duration = new TimeSpan(365, 0, 0, 0); expiration = now.Add(duration); epochexp = expiration - epoch; } ad.CreationDate = (int)epochnow.TotalSeconds; ad.ExpirationDate = (int)epochexp.TotalSeconds; try { using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand()) { cmd.CommandText = query; cmd.Parameters.AddWithValue(":ClassifiedId", ad.ClassifiedId.ToString()); cmd.Parameters.AddWithValue(":CreatorId", ad.CreatorId.ToString()); cmd.Parameters.AddWithValue(":CreatedDate", ad.CreationDate.ToString()); cmd.Parameters.AddWithValue(":ExpirationDate", ad.ExpirationDate.ToString()); cmd.Parameters.AddWithValue(":Category", ad.Category.ToString()); cmd.Parameters.AddWithValue(":Name", ad.Name.ToString()); cmd.Parameters.AddWithValue(":Description", ad.Description.ToString()); cmd.Parameters.AddWithValue(":ParcelId", ad.ParcelId.ToString()); cmd.Parameters.AddWithValue(":ParentEstate", ad.ParentEstate.ToString()); cmd.Parameters.AddWithValue(":SnapshotId", ad.SnapshotId.ToString()); cmd.Parameters.AddWithValue(":SimName", ad.SimName.ToString()); cmd.Parameters.AddWithValue(":GlobalPos", ad.GlobalPos.ToString()); cmd.Parameters.AddWithValue(":ParcelName", ad.ParcelName.ToString()); cmd.Parameters.AddWithValue(":Flags", ad.Flags.ToString()); cmd.Parameters.AddWithValue(":ListingPrice", ad.Price.ToString()); cmd.ExecuteNonQuery(); } } catch (Exception e) { m_log.ErrorFormat("[PROFILES_DATA]" + ": ClassifiedesUpdate exception {0}", e.Message); result = e.Message; return(false); } return(true); }