//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public Result Execute(IOperationContext pOpCtx, ICreateOperationBuilder pBuild, CreateOperationTasks pTasks, string pName, long pCreatorMemberId, long pUserId) { vOpCtx = pOpCtx; vBuild = pBuild; vTasks = pTasks; vDataAcc = vOpCtx.Data.Build(null, true); vBuild.SetDataAccess(vDataAcc); vName = pName; vCreatorMemberId = pCreatorMemberId; vUserId = pUserId; try { return(ExecuteSession()); } catch (FabDuplicateFault) { return(new Result { Status = ResultStatus.DuplicateAppName }); } catch (FabNotFoundFault) { return(new Result { Status = ResultStatus.NotFoundMemberOrUser }); } catch (Exception e) { Log.Error("Unexpected error", e); return(new Result { Status = ResultStatus.UnexpectedError }); } }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public static void ClassAfterSessionStart(CreateOperationTasks pTasks, ICreateOperationBuilder pBuild, Class pNewDom, CreateFabClass pNewCre) { string disLow = (pNewDom.Disamb == null ? null : pNewDom.Disamb.ToLower()); pTasks.FindDuplicateClass(pBuild, pNewDom.NameKey, disLow); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public static void InstanceAfterSessionStart(CreateOperationTasks pTasks, ICreateOperationBuilder pBuild, Instance pNewDom, CreateFabInstance pNewCre) { if (pNewDom.Name == null && pNewDom.Disamb != null) { throw new FabPropertyValueFault("Name", null, "Cannot be null when Disamb is specified."); } }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public static void FactorAfterSessionStart(CreateOperationTasks pTasks, ICreateOperationBuilder pBuild, Factor pNewDom, CreateFabFactor pNewCre) { if (pNewCre.UsesPrimaryArtifactId == pNewCre.UsesRelatedArtifactId) { throw new FabPropertyValueFault("RelatedArtifactId", pNewCre.UsesRelatedArtifactId + "", "Cannot be equal to PrimaryArtifactId"); } }
/*--------------------------------------------------------------------------------------------*/ public virtual TDom Execute(IOperationContext pOpCtx, ICreateOperationBuilder pBuild, CreateOperationTasks pTasks, TCre pNewCre) { SetExecuteData(pOpCtx, pBuild, pTasks, pNewCre, pOpCtx.GetSharpflakeId <Vertex>(), pOpCtx.Data.Build(null, true), true); Build.SetDataAccess(vDataAcc); Build.StartSession(); CheckAndAddVertex(); AddEdges(); Build.CommitAndCloseSession(); vDataRes = vDataAcc.Execute(GetType().Name); Build.PerformChecks(vDataRes); int cmdI = vDataRes.GetCommandIndexByCmdId(AddVertexCommandId); return(vDataRes.ToElementAt <TDom>(cmdI, 0)); }
/*--------------------------------------------------------------------------------------------*/ public void SetExecuteData(IOperationContext pOpCtx, ICreateOperationBuilder pBuild, CreateOperationTasks pTasks, TCre pNewCre, long pVertexId, IDataAccess pAccess, bool pRequireAuthAndSetCreator) { vOpCtx = pOpCtx; Build = pBuild; Tasks = pTasks; vDataAcc = pAccess; vVertexId = pVertexId; NewCre = pNewCre; if (pRequireAuthAndSetCreator) { VerifyAuthAndSetCreator(); } NewCre.Validate(); NewDom = ToDomain(NewCre); NewDom.VertexId = vVertexId; NewDom.Timestamp = vOpCtx.UtcNow.Ticks; }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public Result Execute(IOperationContext pOpCtx, ICreateOperationBuilder pBuild, CreateOperationTasks pTasks, string pEmail, string pUsername, string pPassword) { vOpCtx = pOpCtx; vBuild = pBuild; vTasks = pTasks; vDataAcc = vOpCtx.Data.Build(null, true); vBuild.SetDataAccess(vDataAcc); vEmail = pEmail; vUsername = pUsername; vPassword = pPassword; try { if (FindDuplicateEmail()) { return(new Result { Status = ResultStatus.DuplicateEmail }); } return(ExecuteSession()); } catch (FabDuplicateFault) { return(new Result { Status = ResultStatus.DuplicateUsername }); } catch (Exception e) { Log.Error("Unexpected error", e); return(new Result { Status = ResultStatus.UnexpectedError }); } }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public static void MemberAfterSessionStart(CreateOperationTasks pTasks, ICreateOperationBuilder pBuild, Member pNewDom, CreateFabMember pNewCre) { pTasks.FindDuplicateMember(pBuild, pNewCre.DefinedByUserId, pNewCre.DefinedByAppId); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public virtual TDom Execute(IOperationContext pOpCtx, ICreateOperationBuilder pBuild, CreateOperationTasks pTasks, string pJson) { return(Execute(pOpCtx, pBuild, pTasks, JsonSerializer.DeserializeFromString <TCre>(pJson))); }