public static TEvent MapToEvent <TEvent>(this ICommand command) where TEvent : class, IEvent, new() { TEvent evnt = new TEvent(); ValueInjecter.Inject(command, evnt); return(evnt); }
public void DefaultInject() { var f = new Foo(); var s = new { Name = "athene" }; f.InjectFrom(s); f.Name.IsEqualTo(s.Name); var v = new ValueInjecter(); f = new Foo(); v.Inject(f, s); f.Name.IsEqualTo("athene"); }
/// <summary> </summary> public static dynamic _copy_slow <t>(int id, String name) where t : new() { dynamic org; org = ActiveRecordBase <t> .TryFind(id); if (org == null) { return(org); } if (String.IsNullOrWhiteSpace(name)) { name = org.name + "_copy"; } dynamic copy = new t(); copy.name = name; ActiveRecordMediator <dynamic> .Save(copy); copy = (t)copy; int copy_id = copy.baseid; IValueInjecter injecter = new ValueInjecter(); injecter.Inject <CloneInjection>(copy, org); copy.name = name; copy.baseid = copy_id; //copy.owner.baseid = userService.getUserFull().baseid; copy.users.Clear(); copy.users.Add(userService.getUserFull()); copy.updated_date = DateTime.Now; //copy.status.id = 1; //copy = (dynamic)copy; try { ActiveRecordMediator <dynamic> .Save(copy); } catch { ActiveRecordMediator <dynamic> .Delete(copy); } return(copy); }
public void InjectWithoutSource() { var o = new Foo(); o.InjectFrom<NoSource>(); o.Name.IsEqualTo("hi"); var oo = new Foo(); oo.InjectFrom(new NoSource()); oo.Name.IsEqualTo("hi"); var v = new ValueInjecter(); var f = new Foo(); v.Inject<NoSource>(f); f.Name.IsEqualTo("hi"); f = new Foo(); v.Inject(new NoSource(), f); f.Name.IsEqualTo("hi"); }
public void InjectWithoutSource() { var o = new Foo(); o.InjectFrom <NoSource>(); o.Name.IsEqualTo("hi"); var oo = new Foo(); oo.InjectFrom(new NoSource()); oo.Name.IsEqualTo("hi"); var v = new ValueInjecter(); var f = new Foo(); v.Inject <NoSource>(f); f.Name.IsEqualTo("hi"); f = new Foo(); v.Inject(new NoSource(), f); f.Name.IsEqualTo("hi"); }
public ValueInjecterAdapter() { this.injecter = new ValueInjecter(); }
public static dynamic _copy_slow <t>(int id, String name) where t : new() { dynamic org = ActiveRecordBase <t> .Find(id); if (String.IsNullOrWhiteSpace(name)) { name = org.name + "_copy"; } /* * dynamic copy = new t().InjectFrom<CloneInjection>(org); * * IValueInjecter injecter = new ValueInjecter(); * injecter.Inject(copy, org); */ /*Mapper.Reset(); * * Mapper.CreateMap<dynamic, dynamic>().ForMember(x => x.id, o => o.Ignore()); * Mapper.AssertConfigurationIsValid(); * * var copy = Mapper.Map<t,t>(org); * * ActiveRecordMediator<dynamic>.Save(copy);*/ //Mapper.Reset(); //Mapper.CreateMap<dynamic, dynamic>();//.ForMember(x => x.id, o => o.Ignore()); dynamic copy = new t(); copy.name = name; ActiveRecordMediator <dynamic> .Save(copy); copy = (t)copy; int copy_id = copy.id; IValueInjecter injecter = new ValueInjecter(); injecter.Inject <CloneInjection>(copy, org); //copy = copy.InjectFrom<CloneInjection>(org); copy.name = name; copy.id = copy_id; try { UserService userService = new Services.UserService(); copy.owner.id = userService.getUserFull().id; } catch (Exception ex) { // caught it, it is not there.. } copy.status.id = 1; copy = (dynamic)copy; //ActiveRecordMediator<dynamic>.Save(copy); /* * ActiveRecordMediator<dynamic>.Update(copy); * try{} * catch{ * //ActiveRecordMediator<dynamic>.Delete(copy); * } */ return(copy); }
/// <summary> </summary> public static dynamic make_revision <t>(int id, int version, int revision) where t : new() { dynamic org; org = ActiveRecordBase <t> .TryFind(id); if (org == null) { return(org); } int oldrevision = get_last_revision(org); dynamic copy = new t(); ActiveRecordMediator <dynamic> .Save(copy); copy = (t)copy; int copy_id = copy.baseid; IValueInjecter injecter = new ValueInjecter(); injecter.Inject <CloneInjection>(copy, org); if (revision > 0) { copy.revision = revision + 1; } else { copy.revision = oldrevision + 1; } if (version > 0) { copy.version = version; } copy.parent = org; copy.baseid = copy_id; String dest = ""; if (copy.loads_file) { //use the file ext to split.. fix it String[] fileparts = copy.static_file.Split('.'); if ( helperService.CalculateMD5Hash(file_handler.read_from_file(copy.static_file)) != helperService.CalculateMD5Hash(file_handler.read_from_file(fileparts[0] + "." + copy.version + "." + revision + "." + fileparts[1])) ) { dest = fileparts[0] + "." + copy.version + "." + copy.revision + "." + fileparts[1]; file_handler.copyfile(copy.static_file, dest); } } //copy.status.id = 1; //copy = (dynamic)copy; try { ActiveRecordMediator <dynamic> .Save(copy); return(copy); } catch { ActiveRecordMediator <dynamic> .Delete(copy); if (!String.IsNullOrWhiteSpace(dest)) { file_handler.deletefile(dest); } return(false); } }
/// <summary> </summary> public static dynamic copy_post_to_post(posting to, posting from) { dynamic org; org = (posting)from; dynamic old_meta = org.meta_data; dynamic old_meta_date = org.meta_data_date; dynamic old_meta_geo = org.meta_data_geo; dynamic old_menu_ops = org.menuoptions; ActiveRecordMediator <posting> .Save(to); int copy_id = to.baseid; IValueInjecter injecter = new ValueInjecter(); injecter.Inject <CloneInjection>(to, from); to.baseid = copy_id; //can we ditch this? List <meta_data> new_meta = new List <meta_data>(); if (old_meta != null && old_meta.Count > 0) { foreach (meta_data data in old_meta) { new_meta.Add(new meta_data() { meta_key = data.meta_key, post = to, value = data.value }); } to.meta_data = new_meta; } List <meta_data_date> new_meta_date = new List <meta_data_date>(); if (old_meta_date != null && old_meta_date.Count > 0) { foreach (meta_data_date data in old_meta_date) { new_meta_date.Add(new meta_data_date() { meta_key = data.meta_key, post = to, value = data.value }); } to.meta_data_date = new_meta_date; } List <meta_data_geo> new_meta_geo = new List <meta_data_geo>(); if (old_meta_geo != null && old_meta_geo.Count > 0) { foreach (meta_data_geo data in old_meta_geo) { new_meta_geo.Add(new meta_data_geo() { meta_key = data.meta_key, post = to, coordinate = data.coordinate }); } to.meta_data_geo = new_meta_geo; } List <menu_option> new_menu_ops = new List <menu_option>(); if (old_menu_ops != null && old_menu_ops.Count > 0) { foreach (menu_option data in old_menu_ops) { if (data.post != null) { menu_option tmp = new menu_option() { site = data.site, alias = "menu-item", sort = data.post.sort, position = data.post.position, post = data.post }; ActiveRecordMediator <menu_option> .Save(tmp); new_menu_ops.Add(tmp); } } to.menuoptions = new_menu_ops; } String dest = ""; try { ActiveRecordMediator <posting> .Save(to); return(to); } catch { //Clean up the puke that is on the floor here... foreach (meta_data data in new_meta) { ActiveRecordMediator <meta_data> .Delete(data); } foreach (menu_option data in new_menu_ops) { ActiveRecordMediator <menu_option> .Delete(data); } if (!String.IsNullOrWhiteSpace(dest)) { file_handler.deletefile(dest); } if (to != null) { ActiveRecordMediator <posting> .Delete(to); } ActiveRecordMediator <posting> .Save(org); //restore the orginal post on fail return(false); } }