//------------------------------------------ #endregion #region --------------Create-------------- /// <summary> /// Converts the Messages object properties to SQL paramters and executes the create Messages procedure /// and updates the Messages object with the SQL data by reference. /// <example>[Example]bool status=MessagesSqlDataPrvider.Instance.Create(msg);.</example> /// </summary> /// <param name="msg">The Messages object.</param> /// <returns>The status of create query.</returns> public bool Create(MessagesEntity msg) { using (SqlConnection myConnection = GetSqlConnection()) { SqlCommand myCommand = new SqlCommand("Messages_Create", myConnection); myCommand.CommandType = CommandType.StoredProcedure; // Set the parameters myCommand.Parameters.Add("@MessageID", SqlDbType.Int, 4).Direction = ParameterDirection.Output; myCommand.Parameters.Add("@Name", SqlDbType.NVarChar, 128).Value = msg.Name; myCommand.Parameters.Add("@Mobile", SqlDbType.NVarChar, 32).Value = msg.Mobile; myCommand.Parameters.Add("@EMail", SqlDbType.VarChar, 128).Value = msg.EMail; myCommand.Parameters.Add("@NationalityID", SqlDbType.Int, 4).Value = msg.NationalityID; myCommand.Parameters.Add("@CountryID", SqlDbType.Int, 4).Value = msg.CountryID; myCommand.Parameters.Add("@Address", SqlDbType.NVarChar, 256).Value = msg.Address; myCommand.Parameters.Add("@JobTel", SqlDbType.NVarChar, 32).Value = msg.JobTel; myCommand.Parameters.Add("@Type", SqlDbType.Int, 4).Value = msg.Type; myCommand.Parameters.Add("@Title", SqlDbType.NVarChar, 128).Value = msg.Title; myCommand.Parameters.Add("@Details", SqlDbType.NText).Value = msg.Details; myCommand.Parameters.Add("@UserId", SqlDbType.UniqueIdentifier).Value = msg.UserId; myCommand.Parameters.Add("@ToItemID", SqlDbType.Int, 4).Value = msg.ToItemID; myCommand.Parameters.Add("@ModuleTypeID", SqlDbType.Int, 4).Value = (int)msg.ModuleTypeID; //------------------------------------------------------ myCommand.Parameters.Add("@CategoryID", SqlDbType.Int, 4).Value = msg.CategoryID; myCommand.Parameters.Add("@LangID", SqlDbType.Int, 4).Value = (int)msg.LangID; myCommand.Parameters.Add("@ToUserID", SqlDbType.UniqueIdentifier).Value = msg.ToUserID; //------------------------------------------------------ myCommand.Parameters.Add("@EmpNo", SqlDbType.Int, 4).Value = msg.EmpNo; myCommand.Parameters.Add("@Gender", SqlDbType.Int, 4).Value = (int)msg.Gender; myCommand.Parameters.Add("@BirthDate", SqlDbType.VarChar, 32).Value = msg.BirthDate; myCommand.Parameters.Add("@SocialStatus", SqlDbType.Int, 4).Value = msg.SocialStatus; myCommand.Parameters.Add("@EducationLevel", SqlDbType.Int, 4).Value = msg.EducationLevel; myCommand.Parameters.Add("@CityID", SqlDbType.Int, 4).Value = msg.CityID; myCommand.Parameters.Add("@UserCityName", SqlDbType.NVarChar).Value = msg.UserCityName; myCommand.Parameters.Add("@Tel", SqlDbType.NVarChar, 32).Value = msg.Tel; myCommand.Parameters.Add("@HasSmsService", SqlDbType.Bit, 1).Value = msg.HasSmsService; myCommand.Parameters.Add("@HasEmailService", SqlDbType.Bit, 1).Value = msg.HasEmailService; myCommand.Parameters.Add("@AgeRang", SqlDbType.Int, 4).Value = msg.AgeRang; //------------------------------------------------------ myCommand.Parameters.Add("@Notes1", SqlDbType.NVarChar, 512).Value = msg.Notes1; myCommand.Parameters.Add("@Notes2", SqlDbType.NVarChar, 512).Value = msg.Notes2; //------------------------------------------------------ myCommand.Parameters.Add("@Fax", SqlDbType.NVarChar, 32).Value = msg.Fax; myCommand.Parameters.Add("@MailBox", SqlDbType.NVarChar, 32).Value = msg.MailBox; myCommand.Parameters.Add("@ZipCode", SqlDbType.NVarChar, 32).Value = msg.ZipCode; myCommand.Parameters.Add("@JobID", SqlDbType.Int, 4).Value = msg.JobID; myCommand.Parameters.Add("@JobText", SqlDbType.NVarChar, 64).Value = msg.JobText; myCommand.Parameters.Add("@Url", SqlDbType.NVarChar, 128).Value = msg.Url; myCommand.Parameters.Add("@PhotoExtension", SqlDbType.VarChar, 5).Value = msg.PhotoExtension; //------------------------------------------------------ myCommand.Parameters.Add("@Company", SqlDbType.NVarChar, 64).Value = msg.Company; myCommand.Parameters.Add("@ActivitiesID", SqlDbType.Int, 4).Value = msg.ActivitiesID; myCommand.Parameters.Add("@ExtraData", SqlDbType.NVarChar).Value = OurSerializer.Serialize(msg.ExtraData); //------------------------------------------------------ myCommand.Parameters.Add("@FileExtension", SqlDbType.VarChar, 5).Value = msg.FileExtension; //------------------------------------------------------ //New Parameters //----------------- myCommand.Parameters.Add("@IsMain", SqlDbType.Bit).Value = msg.IsMain; myCommand.Parameters.Add("@VideoExtension", SqlDbType.VarChar, 5).Value = msg.VideoExtension; myCommand.Parameters.Add("@AudioExtension", SqlDbType.VarChar, 5).Value = msg.AudioExtension; myCommand.Parameters.Add("@Priority", SqlDbType.Int, 4).Value = (int)msg.Priority; myCommand.Parameters.Add("@Photo2Extension", SqlDbType.VarChar, 5).Value = msg.Photo2Extension; myCommand.Parameters.Add("@Height", SqlDbType.Int, 4).Value = msg.Height; myCommand.Parameters.Add("@Width", SqlDbType.Int, 4).Value = msg.Width; //---------------------------------------------------------------------------------- if (msg.ItemDate != DateTime.MinValue) { myCommand.Parameters.Add("@ItemDate", SqlDbType.DateTime).Value = (DateTime)msg.ItemDate; } else { myCommand.Parameters.Add("@ItemDate", SqlDbType.DateTime).Value = DBNull.Value; } //---------------------------------------------------------------------------------- myCommand.Parameters.Add("@InsertUserName", SqlDbType.NVarChar, 64).Value = (string)msg.InsertUserName; myCommand.Parameters.Add("@YoutubeCode", SqlDbType.VarChar, 16).Value = (string)msg.YoutubeCode; //---------------------------------------------------------------------------------- myCommand.Parameters.Add("@GoogleLatitude", SqlDbType.NVarChar).Value = msg.GoogleLatitude; myCommand.Parameters.Add("@GoogleLongitude", SqlDbType.NVarChar).Value = msg.GoogleLongitude; myCommand.Parameters.Add("@Price", SqlDbType.NVarChar, 128).Value = msg.Price; myCommand.Parameters.Add("@OnlyForRegisered", SqlDbType.Bit).Value = msg.OnlyForRegisered; //------------------------------------- myCommand.Parameters.Add("@PublishPhoto", SqlDbType.Bit).Value = msg.PublishPhoto; myCommand.Parameters.Add("@PublishPhoto2", SqlDbType.Bit).Value = msg.PublishPhoto2; myCommand.Parameters.Add("@PublishFile", SqlDbType.Bit).Value = msg.PublishFile; myCommand.Parameters.Add("@PublishAudio", SqlDbType.Bit).Value = msg.PublishAudio; myCommand.Parameters.Add("@PublishVideo", SqlDbType.Bit).Value = msg.PublishVideo; myCommand.Parameters.Add("@PublishYoutbe", SqlDbType.Bit).Value = msg.PublishYoutbe; //---------------------------------------------------------------------------------- myCommand.Parameters.Add("@ShortDescription", SqlDbType.NText).Value = msg.ShortDescription; //---------------------------------------------------------------------------------- myCommand.Parameters.Add("@OwnerID", SqlDbType.UniqueIdentifier).Value = msg.OwnerID; myCommand.Parameters.Add("@OwnerName", SqlDbType.VarChar).Value = msg.OwnerName; //---------------------------------------------------------------------------------- myCommand.Parameters.Add("@KeyWords", SqlDbType.NVarChar, 256).Value = msg.KeyWords; //---------------------------------------------------------------------------------- // Execute the command bool status = false; myConnection.Open(); if (myCommand.ExecuteNonQuery() > 0) { status = true; //Get ID value from database and set it in object msg.MessageID = (int)myCommand.Parameters["@MessageID"].Value; } myConnection.Close(); return(status); } }
protected object GetEntity(IDataReader reader, Type t) { object obj = Activator.CreateInstance(t); //object obj = new t(); StringDictionary columnsNames = new StringDictionary(); DataTable dt = reader.GetSchemaTable(); //--------------------------------- ProfilesEntity profile = null; string columnname; for (int i = 0; i < reader.FieldCount; i++) { columnname = reader.GetName(i); if (!columnsNames.ContainsKey(columnname)) { columnsNames.Add(columnname, null); PropertyInfo myPropInfo; myPropInfo = t.GetProperty(columnname); if (reader[columnname] != DBNull.Value && myPropInfo != null) { //myPropInfo.SetValue(obj, Convert.ChangeType(reader[columnname], myPropInfo.PropertyType), null); if (myPropInfo.PropertyType.BaseType == typeof(System.Enum)) { //int intVal = Convert.ToInt32(attr.Value); myPropInfo.SetValue(obj, Enum.Parse(myPropInfo.PropertyType, reader[columnname].ToString()), null); //Enum.Parse(typeof(myPropInfo.), "FirstName"); } /* * else if (reader[columnname].GetType() == typeof(Byte[])) * { * byte[] buf = (byte[])reader[columnname]; * myPropInfo.SetValue(obj, Convert.ChangeType(OurSerializer.Deserialize(buf), myPropInfo.PropertyType), null); * }*/ else if (columnname.ToLower() == "extradata") { string buf = (string)reader[columnname]; myPropInfo.SetValue(obj, Convert.ChangeType(OurSerializer.Deserialize(buf), myPropInfo.PropertyType), null); } else { myPropInfo.SetValue(obj, Convert.ChangeType(reader[columnname], myPropInfo.PropertyType), null); } } else { if (columnname.ToLower() == "propertynames") { if (profile == null) { profile = new ProfilesEntity(); } if (reader["PropertyNames"] != DBNull.Value) { profile.PropertyNames = (string)reader["PropertyNames"]; } } else if (columnname.ToLower() == "propertyvaluesstring") { if (profile == null) { profile = new ProfilesEntity(); } if (reader["PropertyValuesString"] != DBNull.Value) { profile.PropertyValuesString = (string)reader["PropertyValuesString"]; } } } } } if (profile != null) { PropertyInfo myPropInfo = t.GetProperty("Profile"); if (myPropInfo != null) { //------------------------------------------------------------- object objProfile = Activator.CreateInstance(myPropInfo.PropertyType); //------------------------------------------------------------- //------------------------------------------------------------- ProfilesEntity Tempprofile = (ProfilesEntity)objProfile; Tempprofile.PropertyNames = profile.PropertyNames; Tempprofile.PropertyValuesString = profile.PropertyValuesString; //------------------------------------------------------------- ProfileBuilder.ParseProfileData(Tempprofile.PropertyNames, Tempprofile.PropertyValuesString, Tempprofile.PropertyValueCollection); //------------------------------------------------------------- myPropInfo.SetValue(obj, objProfile, null); //------------------------------------------------------------- } } //--------------------------------- return(obj); }