-
-
Notifications
You must be signed in to change notification settings - Fork 401
Expand file tree
/
Copy pathPersonEdit.cs
More file actions
86 lines (75 loc) · 2.35 KB
/
PersonEdit.cs
File metadata and controls
86 lines (75 loc) · 2.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
using System.ComponentModel.DataAnnotations;
using Csla;
using Csla.Rules;
namespace BusinessLibrary
{
[CslaImplementProperties]
public partial class PersonEdit : BusinessBase<PersonEdit>
{
public partial int Id { get; private set; }
[Required]
public partial string? Name { get; set; }
public partial int NameLength { get; private set; }
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[ObjectAuthorizationRules]
public static void AddObjectAuthorizationRules()
{
//Csla.Rules.BusinessRules.AddRule(typeof(PersonEdit),
// new Csla.Rules.CommonRules.IsInRole(Csla.Rules.AuthorizationActions.CreateObject, "Admin"));
//Csla.Rules.BusinessRules.AddRule(typeof(PersonEdit),
// new Csla.Rules.CommonRules.IsInRole(Csla.Rules.AuthorizationActions.EditObject, "Admin"));
//Csla.Rules.BusinessRules.AddRule(typeof(PersonEdit),
// new Csla.Rules.CommonRules.IsInRole(Csla.Rules.AuthorizationActions.DeleteObject, "Admin"));
}
protected override void AddBusinessRules()
{
base.AddBusinessRules();
BusinessRules.AddRule(new InfoText(NameProperty, "Person name (required)"));
BusinessRules.AddRule(new CheckCase(NameProperty));
BusinessRules.AddRule(new NoZAllowed(NameProperty));
BusinessRules.AddRule(new LetterCount(NameProperty, NameLengthProperty));
}
[Create]
private void Create()
{
LoadProperty(IdProperty, -1);
}
[Fetch]
private void Fetch(int id, [Inject] DataAccess.IPersonDal dal)
{
var data = dal.Get(id);
Csla.Data.DataMapper.Map(data, this);
BusinessRules.CheckRules();
}
[Insert]
private void Insert([Inject] DataAccess.IPersonDal dal)
{
var data = new DataAccess.PersonEntity
{
Name = Name
};
var result = dal.Insert(data);
LoadProperty(IdProperty, result.Id);
}
[Update]
private void Update([Inject] DataAccess.IPersonDal dal)
{
var data = new DataAccess.PersonEntity
{
Id = Id,
Name = Name
};
dal.Update(data);
}
[DeleteSelf]
private void DeleteSelf([Inject] DataAccess.IPersonDal dal)
{
Delete(Id, dal);
}
[Delete]
private void Delete(int id, [Inject] DataAccess.IPersonDal dal)
{
dal.Delete(id);
}
}
}