delphimvcframework/samples/commons/BusinessObjectsU.pas

279 lines
6.9 KiB
ObjectPascal
Raw Normal View History

2013-11-11 01:11:09 +01:00
unit BusinessObjectsU;
interface
uses
2017-05-25 16:57:49 +02:00
MVCFramework.Serializer.Commons, Generics.Collections;
2013-11-11 01:11:09 +01:00
type
2014-04-01 00:02:31 +02:00
2017-03-29 14:49:35 +02:00
[MVCNameCase(ncLowerCase)]
2013-11-11 01:11:09 +01:00
TPerson = class
private
2014-05-22 12:48:44 +02:00
FLastName: string;
2013-11-11 01:11:09 +01:00
FDOB: TDate;
2014-05-22 12:48:44 +02:00
FFirstName: string;
2013-11-11 01:11:09 +01:00
FMarried: boolean;
procedure SetDOB(const Value: TDate);
2014-05-22 12:48:44 +02:00
procedure SetFirstName(const Value: string);
procedure SetLastName(const Value: string);
2013-11-11 01:11:09 +01:00
procedure SetMarried(const Value: boolean);
public
function Equals(Obj: TObject): boolean; override;
2014-05-22 12:48:44 +02:00
property FirstName: string read FFirstName write SetFirstName;
property LastName: string read FLastName write SetLastName;
2013-11-11 01:11:09 +01:00
property DOB: TDate read FDOB write SetDOB;
property Married: boolean read FMarried write SetMarried;
2017-03-20 21:42:28 +01:00
2015-04-01 17:01:23 +02:00
class function GetNew(AFirstName, ALastName: string; ADOB: TDate; AMarried: boolean): TPerson;
class function GetList: TObjectList<TPerson>;
2013-11-11 01:11:09 +01:00
end;
TPeople = class(TObjectList<TPerson>);
[MVCNameCase(ncLowerCase)]
TMetadata = class
private
FCustomData: string;
FStopProcessing: TDateTime;
FStartProcessing: TDateTime;
procedure SetCustomData(const Value: string);
procedure SetStartProcessing(const Value: TDateTime);
procedure SetStopProcessing(const Value: TDateTime);
public
property StartProcessing: TDateTime read FStartProcessing write SetStartProcessing;
property StopProcessing: TDateTime read FStopProcessing write SetStopProcessing;
property CustomData: string read FCustomData write SetCustomData;
end;
[MVCNameCase(ncLowerCase)]
TPeopleWithMetadata = class(TObject)
private
FItems: TPeople;
FMetadata: TMetadata;
public
constructor Create;
destructor Destroy; override;
property Items: TPeople read FItems;
property Metadata: TMetadata read FMetadata;
end;
2017-03-29 14:49:35 +02:00
[MVCNameCase(ncLowerCase)]
2013-11-11 01:11:09 +01:00
TCustomer = class
private
2014-05-22 12:48:44 +02:00
FName: string;
FAddressLine2: string;
FAddressLine1: string;
FContactFirst: string;
FCity: string;
FContactLast: string;
procedure SetAddressLine1(const Value: string);
procedure SetAddressLine2(const Value: string);
procedure SetCity(const Value: string);
procedure SetContactFirst(const Value: string);
procedure SetContactLast(const Value: string);
procedure SetName(const Value: string);
2013-11-11 01:11:09 +01:00
public
2014-05-22 12:48:44 +02:00
property name: string read FName write SetName;
2017-03-20 21:42:28 +01:00
[MVCDoNotSerialize]
2014-05-22 12:48:44 +02:00
property ContactFirst: string read FContactFirst write SetContactFirst;
2017-03-20 21:42:28 +01:00
[MVCDoNotSerialize]
2014-05-22 12:48:44 +02:00
property ContactLast: string read FContactLast write SetContactLast;
property AddressLine1: string read FAddressLine1 write SetAddressLine1;
property AddressLine2: string read FAddressLine2 write SetAddressLine2;
property City: string read FCity write SetCity;
2015-04-01 17:01:23 +02:00
class function GetList: TObjectList<TCustomer>;
2013-11-11 01:11:09 +01:00
end;
2017-03-29 14:49:35 +02:00
[MVCNameCase(ncLowerCase)]
2014-05-30 11:29:58 +02:00
TProgrammer = class(TPerson)
private
FSkills: string;
procedure SetSkills(const Value: string);
public
property Skills: string read FSkills write SetSkills;
end;
2017-03-29 14:49:35 +02:00
[MVCNameCase(ncLowerCase)]
2014-05-30 11:29:58 +02:00
TPhilosopher = class(TPerson)
private
FMentors: string;
procedure SetMentors(const Value: string);
2014-05-30 11:29:58 +02:00
public
property Mentors: string read FMentors write SetMentors;
2014-05-30 11:29:58 +02:00
end;
2013-11-11 01:11:09 +01:00
implementation
uses
System.SysUtils;
2013-11-11 01:11:09 +01:00
{ TPerson }
function TPerson.Equals(Obj: TObject): boolean;
begin
Result := Obj is TPerson;
if Result then
begin
Result := Result and (TPerson(Obj).LastName = Self.LastName);
Result := Result and (TPerson(Obj).FirstName = Self.FirstName);
Result := Result and (TPerson(Obj).Married = Self.Married);
Result := Result and (TPerson(Obj).DOB = Self.DOB);
end;
end;
class function TPerson.GetList: TObjectList<TPerson>;
begin
2017-06-22 16:18:58 +02:00
Result := TObjectList<TPerson>.Create(true);
Result.Add(TPerson.GetNew('Tony', 'Stark', EncodeDate(1965, 5, 15), true));
Result.Add(TPerson.GetNew('Stevene', 'Rogers', 0, true));
Result.Add(TPerson.GetNew('Bruce', 'Banner', 0, true));
end;
class function TPerson.GetNew(AFirstName, ALastName: string; ADOB: TDate;
AMarried: boolean): TPerson;
begin
Result := TPerson.Create;
Result.FLastName := ALastName;
Result.FFirstName := AFirstName;
Result.FDOB := ADOB;
Result.FMarried := AMarried;
end;
2013-11-11 01:11:09 +01:00
procedure TPerson.SetDOB(const Value: TDate);
begin
FDOB := Value;
end;
2014-05-22 12:48:44 +02:00
procedure TPerson.SetFirstName(const Value: string);
2013-11-11 01:11:09 +01:00
begin
FFirstName := Value;
end;
2014-05-22 12:48:44 +02:00
procedure TPerson.SetLastName(const Value: string);
2013-11-11 01:11:09 +01:00
begin
FLastName := Value;
end;
procedure TPerson.SetMarried(const Value: boolean);
begin
FMarried := Value;
end;
{ TCustomer }
2015-04-01 17:01:23 +02:00
class function TCustomer.GetList: TObjectList<TCustomer>;
var
C1: TCustomer;
I: Integer;
2015-04-01 17:01:23 +02:00
begin
Result := TObjectList<TCustomer>.Create(true);
for I := 1 to 1000 do
begin
C1 := TCustomer.Create;
C1.name := I.ToString + ': bit Time Professionals';
C1.ContactFirst := 'Daniele';
C1.ContactLast := 'Teti';
C1.AddressLine1 := 'Via di Valle Morta 10';
C1.City := 'Rome, IT';
Result.Add(C1);
C1 := TCustomer.Create;
C1.name := I.ToString + ': Stark Industries';
C1.ContactFirst := 'Tony';
C1.ContactLast := 'Stark';
C1.AddressLine1 := 'Superhero Street 555';
C1.City := 'Palo Alto, CA';
Result.Add(C1);
C1 := TCustomer.Create;
C1.name := I.ToString + ': Google Inc';
C1.ContactFirst := 'Larry';
C1.ContactLast := 'Page';
C1.AddressLine1 := '';
C1.City := 'Mountain View, CA';
Result.Add(C1);
end;
2015-04-01 17:01:23 +02:00
end;
2014-05-22 12:48:44 +02:00
procedure TCustomer.SetAddressLine1(const Value: string);
2013-11-11 01:11:09 +01:00
begin
FAddressLine1 := Value;
end;
2014-05-22 12:48:44 +02:00
procedure TCustomer.SetAddressLine2(const Value: string);
2013-11-11 01:11:09 +01:00
begin
FAddressLine2 := Value;
end;
2014-05-22 12:48:44 +02:00
procedure TCustomer.SetCity(const Value: string);
2013-11-11 01:11:09 +01:00
begin
FCity := Value;
end;
2014-05-22 12:48:44 +02:00
procedure TCustomer.SetContactFirst(const Value: string);
2013-11-11 01:11:09 +01:00
begin
FContactFirst := Value;
end;
2014-05-22 12:48:44 +02:00
procedure TCustomer.SetContactLast(const Value: string);
2013-11-11 01:11:09 +01:00
begin
FContactLast := Value;
end;
2014-05-22 12:48:44 +02:00
procedure TCustomer.SetName(const Value: string);
2013-11-11 01:11:09 +01:00
begin
FName := Value;
end;
2014-05-30 11:29:58 +02:00
{ TProgrammer }
procedure TProgrammer.SetSkills(const Value: string);
begin
FSkills := Value;
end;
{ TPhilosopher }
procedure TPhilosopher.SetMentors(const Value: string);
2014-05-30 11:29:58 +02:00
begin
FMentors := Value;
end;
{ TMetadata }
procedure TMetadata.SetCustomData(const Value: string);
begin
FCustomData := Value;
end;
procedure TMetadata.SetStartProcessing(const Value: TDateTime);
begin
FStartProcessing := Value;
end;
procedure TMetadata.SetStopProcessing(const Value: TDateTime);
begin
FStopProcessing := Value;
end;
{ TPeopleWithMetadata }
constructor TPeopleWithMetadata.Create;
begin
inherited;
FMetadata := TMetadata.Create;
FItems := TPeople.Create(true);
end;
destructor TPeopleWithMetadata.Destroy;
begin
FMetadata.Free;
FItems.Free;
inherited;
end;
2013-11-11 01:11:09 +01:00
end.