96 lines
2.6 KiB
C#
96 lines
2.6 KiB
C#
|
|
using Simple.OData.Client;
|
|
using System;
|
|
using System.Text.Json;
|
|
|
|
namespace JSONParser.Structure
|
|
{
|
|
public class Person : Entity
|
|
{
|
|
public string FirstName { get; set; }
|
|
public string LastName { get; set; }
|
|
public string MiddleName { get; set; }
|
|
|
|
public override string ToString()
|
|
{
|
|
var fullname = $"{LastName} {FirstName}";
|
|
if (!string.IsNullOrEmpty(MiddleName))
|
|
{
|
|
fullname += $" {MiddleName}";
|
|
}
|
|
return fullname;
|
|
}
|
|
|
|
public override string Serialize()
|
|
{
|
|
return JsonSerializer.Serialize(this);
|
|
}
|
|
|
|
public override async Task<long> Create(ODataClient client)
|
|
{
|
|
var newPerson = new
|
|
{
|
|
ExternalId = Sid,
|
|
FirstName = FirstName,
|
|
LastName = LastName,
|
|
MiddleName = MiddleName,
|
|
Status = "Active"
|
|
};
|
|
var created = await client
|
|
.For("IPersons")
|
|
.Set(newPerson)
|
|
.InsertEntryAsync();
|
|
this.DirectumId = (long)created["Id"];
|
|
return (long)created["Id"];
|
|
}
|
|
|
|
public async override Task<long> Update(ODataClient client, long id)
|
|
{
|
|
var newPerson = new
|
|
{
|
|
ExternalId = Sid,
|
|
FirstName = FirstName,
|
|
LastName = LastName,
|
|
MiddleName = MiddleName,
|
|
Status = "Active"
|
|
};
|
|
var updated = await client
|
|
.For("IPersons")
|
|
.Key(id)
|
|
.Set(newPerson)
|
|
.UpdateEntryAsync();
|
|
this.DirectumId = (long)updated["Id"];
|
|
return (long)updated["Id"];
|
|
}
|
|
|
|
public bool IsEqual(IDictionary<string, dynamic> per)
|
|
{
|
|
bool result = false;
|
|
if (FirstName == (string)per["FirstName"] &&
|
|
LastName == (string)per["LastName"] &&
|
|
MiddleName == (string)per["MiddleName"])
|
|
{
|
|
result = true;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public async Task<long> GetIdBySid(ODataClient client)
|
|
{
|
|
long result = 0;
|
|
if (!string.IsNullOrEmpty(Sid))
|
|
{
|
|
var per = await client
|
|
.For("IPersons")
|
|
.Filter($"ExternalId eq '{Sid}'")
|
|
.FindEntryAsync();
|
|
if (per != null)
|
|
{
|
|
result = (long)per["Id"];
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
}
|
|
}
|