public override void PerformSynchronizationForItem(Guid primaryKey) { base.ExecuteMethod("PerformSynchronizationForItem", delegate() { Account domainModel = this.API.Direct.Accounts.GetById(primaryKey); if (domainModel != null) { Action <Guid, bool, DateTime, string> synchronizationUpdateMethod = this.API.Direct.Accounts.SynchronizationUpdate; if (this.API.Integration.SettingsResolver.IsHydrate()) { synchronizationUpdateMethod = this.API.Direct.Accounts.SynchronizationHydrateUpdate; } DateTime syncDate = DateTime.UtcNow; if (domainModel.sync_invalid_utc.HasValue) { syncDate = domainModel.sync_invalid_utc.Value; } try { sdk.Account sdkModel = domainModel.ToSDKModel(); this.HydrateSDKModelComputed(domainModel, sdkModel); this.HydrateSDKModel(domainModel, sdkModel); if (domainModel.deleted_utc.HasValue) { this.API.Index.Accounts.DeleteDocument(sdkModel); synchronizationUpdateMethod(domainModel.account_id, true, syncDate, null); } else { IndexResult result = this.API.Index.Accounts.UpdateDocument(sdkModel); if (result.success) { synchronizationUpdateMethod(domainModel.account_id, true, syncDate, result.ToString()); } else { throw new Exception(result.ToString()); } } } catch (Exception ex) { this.IFoundation.LogError(ex, "PerformSynchronizationForItem"); HealthReporter.Current.UpdateMetric(HealthTrackType.Each, string.Format(HealthReporter.INDEXER_ERROR_SYNC, this.EntityName), 0, 1); synchronizationUpdateMethod(primaryKey, false, syncDate, CoreUtility.FormatException(ex)); } } }); }
public object GetById(Guid account_id) { return(base.ExecuteFunction <object>("GetById", delegate() { sdk.Account result = this.API.Index.Accounts.GetById(account_id); if (result == null) { return Http404("Account"); } return base.Http200(new ItemResult <sdk.Account>() { success = true, item = result }); })); }
public object Create(sdk.Account account) { return(base.ExecuteFunction <object>("Create", delegate() { this.ValidateNotNull(account, "Account"); dm.Account insert = account.ToDomainModel(); insert = this.API.Direct.Accounts.Insert(insert); sdk.Account result = this.API.Index.Accounts.GetById(insert.account_id); return base.Http201(new ItemResult <sdk.Account>() { success = true, item = result } , string.Format("api/account/{0}", account.account_id)); })); }
public object Update(Guid account_id, sdk.Account account) { return(base.ExecuteFunction <object>("Update", delegate() { this.ValidateNotNull(account, "Account"); this.ValidateRouteMatch(account_id, account.account_id, "Account"); account.account_id = account_id; dm.Account update = account.ToDomainModel(); update = this.API.Direct.Accounts.Update(update); sdk.Account existing = this.API.Index.Accounts.GetById(update.account_id); return base.Http200(new ItemResult <sdk.Account>() { success = true, item = existing }); })); }
partial void HydrateSDKModel(Account domainModel, sdk.Account sdkModel);
/// <summary> /// Computed and Calculated Aggs, Typically Generated /// </summary> protected void HydrateSDKModelComputed(Account domainModel, sdk.Account sdkModel) { }