Exemple #1
0
        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
                });
            }));
        }
Exemple #5
0
 partial void HydrateSDKModel(Account domainModel, sdk.Account sdkModel);
Exemple #6
0
 /// <summary>
 /// Computed and Calculated Aggs, Typically Generated
 /// </summary>
 protected void HydrateSDKModelComputed(Account domainModel, sdk.Account sdkModel)
 {
 }