Changes between Initial Version and Version 1 of Прототип на апликацијата направена со Naked Objects во ASP.Net


Ignore:
Timestamp:
01/11/14 15:28:42 (10 years ago)
Author:
13078
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Прототип на апликацијата направена со Naked Objects во ASP.Net

    v1 v1  
     1'''User.cs'''
     2{{{
     3#!c#
     4using NakedObjects;
     5using System;
     6using System.Collections.Generic;
     7using System.ComponentModel.DataAnnotations;
     8using System.Linq;
     9using System.Text;
     10using System.Threading.Tasks;
     11
     12namespace CoDBIS_NakedObjects
     13{
     14   public class User
     15    {
     16       public override string ToString()
     17       {
     18           return Name;
     19       }
     20
     21
     22        [Hidden]
     23        public virtual int Id { get; set; }
     24
     25        [StringLength (50)]
     26        public virtual string Name { get; set; }
     27
     28       
     29        public virtual string Gender { get; set; }
     30
     31       
     32        public virtual string PlaceOfBirth { get; set; }
     33
     34        [Mask("d")]
     35        public virtual DateTime DateOfBirth { get; set; }
     36
     37       
     38        public virtual string Email { get; set; }
     39
     40       
     41        public virtual string Employer { get; set; }
     42
     43       
     44        public virtual string Position { get; set; }
     45 
     46        public IDomainObjectContainer Container { set; protected get; }
     47
     48       
     49        #region AddActivity (collection)
     50        private ICollection<AddUserOnActivity> _AddActivity = new List<AddUserOnActivity>();
     51
     52        public virtual ICollection<AddUserOnActivity> AddActivity
     53        {
     54            get
     55            {
     56                return _AddActivity;
     57            }
     58            set
     59            {
     60                _AddActivity = value;
     61            }
     62        }
     63
     64        public void AddToAddActivity(AddUserOnActivity value)
     65        {
     66            if (!(_AddActivity.Contains(value)))
     67            {
     68                _AddActivity.Add(value);
     69            }
     70        }
     71
     72
     73        public void RemoveFromAddActivity(AddUserOnActivity value)
     74        {
     75            if (_AddActivity.Contains(value))
     76            {
     77                _AddActivity.Remove(value);
     78            }
     79        }
     80
     81        public IList<AddUserOnActivity> Choices0RemoveFromAddActivity()
     82        {
     83            return _AddActivity.ToList();
     84        }
     85        #endregion
     86
     87        public AddUserOnActivity CreateNewUserOnActivity() //CreateNewOrder od tip Order
     88        {
     89
     90            var order = Container.NewTransientInstance<AddUserOnActivity>();
     91            order.User = this;
     92            return order;
     93        }
     94
     95       
     96       
     97
     98        public AddUserOnActivity CreateNewAddUserOnActivity()
     99        {
     100            AddUserOnActivity obj = Container.NewTransientInstance<AddUserOnActivity>();
     101           
     102            obj.User = this;
     103            return obj;
     104        }
     105       
     106     
     107
     108    }
     109}
     110}}}
     111
     112'''Activity.cs'''
     113{{{
     114#!c#
     115using NakedObjects;
     116using System;
     117using System.Collections.Generic;
     118using System.ComponentModel.DataAnnotations;
     119using System.Linq;
     120using System.Text;
     121using System.Threading.Tasks;
     122
     123namespace CoDBIS_NakedObjects
     124{
     125    public class Activity
     126    {
     127        public override string ToString()
     128        {
     129            return Name;
     130        }
     131
     132        [Hidden]
     133        public virtual int Id { get; set; }
     134
     135
     136        [StringLength (50), Title]
     137        public virtual string Name { get; set; }
     138
     139       
     140        public virtual string Place { get; set; }
     141
     142     // [Title, Mask("d")]
     143        public virtual DateTime Date { get; set; }
     144
     145       
     146        public virtual string Category { get; set; }
     147
     148    }
     149}
     150}}}
     151
     152'''Activityhistory.cs'''
     153{{{
     154#!c#
     155using NakedObjects;
     156using System;
     157using System.Collections.Generic;
     158using System.ComponentModel;
     159using System.Linq;
     160using System.Text;
     161using System.Threading.Tasks;
     162
     163namespace CoDBIS_NakedObjects
     164{
     165    public class ActivityHistory
     166    {
     167       
     168        public override string ToString()
     169        {
     170            return Role.ToString() + " на " + Activity;
     171        }
     172     
     173        [Hidden]
     174        public virtual int Id { get; set; }
     175
     176       [Hidden]
     177       public virtual AddUserOnActivity AddUserOnActivity { get; set; }
     178
     179       
     180        public virtual Activity Activity { get; set; }
     181
     182        [DefaultValue("")]
     183        public virtual string Role { get; set; }
     184
     185    }
     186}
     187}}}
     188
     189'''Adduseronactivity.cs'''
     190{{{
     191#!c#
     192using NakedObjects;
     193using System;
     194using System.Collections.Generic;
     195using System.Linq;
     196using System.Text;
     197using System.Threading.Tasks;
     198
     199namespace CoDBIS_NakedObjects
     200{
     201    public class AddUserOnActivity
     202    {
     203       
     204        public override string ToString()
     205        {
     206            return User.ToString();
     207        }
     208         
     209        [Hidden]
     210        public virtual int Id { get; set; }
     211
     212        [Disabled]
     213        public virtual User User { get; set; }
     214
     215       
     216       
     217        #region History (collection)
     218        private ICollection<ActivityHistory> _History = new List<ActivityHistory>();
     219
     220        public virtual ICollection<ActivityHistory> History
     221        {
     222            get
     223            {
     224                return _History;
     225            }
     226            set
     227            {
     228                _History = value;
     229            }
     230        }
     231
     232        public void AddToHistory(ActivityHistory value)
     233        {
     234            if (!(_History.Contains(value)))
     235            {
     236                _History.Add(value);
     237            }
     238        }
     239
     240        public void RemoveFromHistory(ActivityHistory value)
     241        {
     242            if (_History.Contains(value))
     243            {
     244                _History.Remove(value);
     245            }
     246        }
     247
     248        public IList<ActivityHistory> Choices0RemoveFromHistory()
     249        {
     250            return _History.ToList();
     251        }
     252        #endregion
     253       
     254
     255        public IDomainObjectContainer Container { set; protected get; }
     256
     257       
     258        public ActivityHistory AddToHistory()
     259        {
     260
     261            var history = Container.NewTransientInstance<ActivityHistory>();
     262            history.AddUserOnActivity = this;
     263            return history;
     264        }
     265
     266       
     267        public ActivityHistory CreateNewActivityHistory()
     268        {
     269            ActivityHistory obj = Container.NewTransientInstance<ActivityHistory>();
     270           
     271            obj.AddUserOnActivity = this;
     272            return obj;
     273        }
     274       
     275     
     276
     277    }
     278}
     279}}}
     280
     281'''Mydbcontext.cs'''
     282{{{
     283#!c#
     284using System;
     285using System.Collections.Generic;
     286using System.Data.Entity;
     287using System.Linq;
     288using System.Text;
     289using System.Threading.Tasks;
     290
     291namespace CoDBIS_NakedObjects
     292{
     293   public class MyDbContext : DbContext
     294    {
     295       public MyDbContext(String name) : base(name) { }
     296       public MyDbContext() { }
     297       public DbSet<User> Users { get; set; }
     298
     299    }
     300}
     301}}}
     302
     303'''Userrepository.cs'''
     304{{{
     305#!c#
     306using NakedObjects;
     307using System;
     308using System.Collections.Generic;
     309using System.ComponentModel;
     310using System.Linq;
     311using System.Text;
     312using System.Threading.Tasks;
     313
     314namespace CoDBIS_NakedObjects
     315{
     316
     317      [DisplayName("Users")]
     318    public class UserRepository
     319    {
     320
     321        public IDomainObjectContainer Container { set; protected get; }
     322
     323        public IQueryable<User> AllUsers()
     324        {
     325            return Container.Instances<User>();
     326        }
     327
     328       
     329        public User CreateNewUser()
     330        {
     331            User obj = Container.NewTransientInstance<User>();
     332            //set up any parameters
     333            //Container.Persist(ref obj);
     334            return obj;
     335        }
     336       
     337
     338      #region Find
     339      public User Find(string  searchString)
     340      {
     341      var query = from obj in Container.Instances<User>()
     342                              where obj.Name.ToUpper().Contains(searchString.ToUpper())
     343                              select obj;
     344                 
     345      return query.FirstOrDefault();
     346          //(If inheriting from AbsractFactoryAndRepository can use:) return SingleObjectWarnIfNoMatch(query);
     347      }
     348      #endregion
     349     
     350
     351    }
     352}
     353}}}
     354
     355
     356
     357'''Activityrepository.cs'''
     358{{{
     359#!c#
     360using NakedObjects;
     361using System;
     362using System.Collections.Generic;
     363using System.ComponentModel;
     364using System.Linq;
     365using System.Text;
     366using System.Threading.Tasks;
     367
     368namespace CoDBIS_NakedObjects
     369{
     370    [DisplayName("Activities")]
     371    public class ActivityRepository
     372    {
     373        public IDomainObjectContainer Container { set; protected get; }
     374
     375       
     376        public IQueryable<Activity> AllActivitys()
     377        {
     378            return Container.Instances<Activity>();
     379        }
     380
     381       
     382        public Activity CreateNewActivity()
     383        {
     384            Activity obj = Container.NewTransientInstance<Activity>();
     385            //set up any parameters
     386            //Container.Persist(ref obj);
     387            return obj;
     388        }
     389       
     390
     391      #region Find
     392      public Activity Find(string name )
     393      {
     394      var query = from obj in Container.Instances<Activity>()
     395                              where obj.Name.ToUpper().Contains(name.ToUpper())
     396                              select obj;
     397                 
     398      return query.FirstOrDefault();
     399          //(If inheriting from AbsractFactoryAndRepository can use:) return SingleObjectWarnIfNoMatch(query);
     400      }
     401      #endregion
     402     
     403    }
     404}
     405
     406}}}
     407
     408'''Runweb.cs'''
     409{{{
     410#!c#
     411using CoDBIS_NakedObjects;
     412using NakedObjects.Boot;
     413using NakedObjects.Core.Context;
     414using NakedObjects.Core.NakedObjectsSystem;
     415using NakedObjects.EntityObjectStore;
     416using NakedObjects.Services;
     417using NakedObjects.Web.Mvc;
     418using NakedObjects.Web.Mvc.Helpers;
     419using System.Data.Entity;
     420using System.Data.Entity.Infrastructure;
     421
     422
     423namespace CoDBIS_MVC.App_Start {
     424    public class RunWeb : RunMvc {
     425        protected override NakedObjectsContext Context {
     426            get { return HttpContextContext.CreateInstance(); }
     427        }
     428
     429        protected override IServicesInstaller MenuServices {
     430            get {
     431                return new ServicesInstaller( new UserRepository(), new ActivityRepository());
     432            }
     433        }
     434
     435        protected override IServicesInstaller ContributedActions {
     436            get { return new ServicesInstaller(); }
     437        }
     438
     439        protected override IServicesInstaller SystemServices {
     440            get { return new ServicesInstaller(new SimpleEncryptDecrypt()); }
     441        }
     442
     443
     444                // example functions that gets types for AssociateTypes below 
     445                //private static Type[] AdventureWorksTypes() {
     446        //    var allTypes =  AppDomain.CurrentDomain.GetAssemblies().Single(a => a.GetName().Name == "AdventureWorksModel").GetTypes();
     447        //    return allTypes.Where(t => t.BaseType == typeof(AWDomainObject) && !t.IsAbstract).ToArray();
     448        //}
     449                //
     450                //private static Type[] CodeFirstTypes() {
     451        //    return new[] {typeof(Class1), typeof(Class2)};
     452        //}
     453
     454        protected override IObjectPersistorInstaller Persistor
     455        {
     456            get
     457            {
     458                 Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0"); //For in-memory database
     459                 Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MyDbContext>()); //Optional behaviour for CodeFirst
     460                var installer = new EntityPersistorInstaller();
     461
     462                 //installer.UsingEdmxContext("Model").AssociateTypes(AdventureWorksTypes); // for Model/Database First
     463                 installer.AddCodeFirstDbContextConstructor(() => new MyDbContext());  //For Code First
     464
     465                return installer;
     466            }
     467        }
     468
     469        public static void Run() {
     470            new RunWeb().Start();
     471        }
     472    }
     473}
     474}}}