Beispiel #1
0
        public void Save(MySqlConnection conn)
        {
            SourceDomain = SourceDomain.ToLower();
            SourceUserId = SourceUserId.ToLower();
            Login        = Login.ToLower();
            _hashKey     = createMD5($"{SourceUserId}@{SourceDomain}");

            var cmd = new MySqlCommand(
                $"INSERT INTO users(hash_key, src_domain, src_user_id, login) VALUES('{_hashKey}',@SourceDomain,@SourceUserId,@Login);COMMIT;",
                conn);

            cmd.Parameters.Add("@SourceDomain", MySqlDbType.VarChar);
            cmd.Parameters.Add("@SourceUserId", MySqlDbType.VarChar);
            cmd.Parameters.Add("@Login", MySqlDbType.VarChar);
            cmd.Parameters["@SourceDomain"].Value = SourceDomain;
            cmd.Parameters["@SourceUserId"].Value = SourceUserId;
            cmd.Parameters["@Login"].Value        = Login;


            var cmdSelect = new MySqlCommand($"SELECT id FROM users WHERE hash_key='{_hashKey}'", conn);

            conn.Open();

            cmd.ExecuteNonQuery();
            var o = cmdSelect.ExecuteScalar();

            Id = Convert.ToInt32(o);

            conn.Close();
        }
    private static void Main(string[] args)
    {
        var newItem = new SourceDomain <Person>
        {
            Item = new Person {
                Age = 11
            },
            Name = "John"
        };
        var oldItem = new DestinationDomain <Person>
        {
            Item = new Person {
                Age = 10
            }
        };
        //there is an item in a database which is of D1 type. This convertor receives an object S1 in order to update the D1 item.
        // the rule is that Sx updatates Dx (where x is 1,2,3,4,5...)
        Convertor <Person> convertor = new Convertor <Person>(newItem, oldItem);
        var newItem2 = new SourceDomain <Location>()
        {
            Item = new Location {
                City = "London"
            },
            Name = "Lynda"
        };
        var oldItem2 = new DestinationDomain <Location>()
        {
            Item = new Location {
                City = "Paris"
            }
        };
        Convertor <Location> convertor2 = new Convertor <Location>(newItem2, oldItem2);

        Console.ReadKey();
    }
 public Convertor(SourceDomain <X> newObject, DestinationDomain <X> oldObject)
 {
     item    = newObject;
     oldItem = oldObject;
     //here I want to call, depending of item type, the proper method, not the base one.
     //newObject.Data = oldItem.Data;
     oldItem.CopyItemFrom(item.Item);
 }