//public static IEnumerable<Type> MakePipelineTypes( // this RequestTypeInfo info, // Type openPipelineType //) // => info // .Select(rti => rti.MakePipelineTypes(openPipelineType)); public static Type MakePipelineTypes( this RequestTypeInfo info, Type openPipelineType ) => openPipelineType .MakeGenericType( info.RequestType, info.ResponseType );
public static string[] Save(string info) { try { var values = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize <Dictionary <string, object> >(info); var Title = values["Title"].ToString(); var Levels = values["RequestDetail"] as ArrayList; var ID = values["ID"].ToLong(); for (int i = 0; i < Levels.Count - 1; i++) { if (Levels[i] == Levels[i + 1]) { throw new Exception(Resources.Texts.SameLevelIsSelected); } } var RequestTypeInfo = Business.FacadeAutomation.GetRequestTypesBusiness().GetByID(ID); if (RequestTypeInfo == null) { RequestTypeInfo = new Data.Models.Generated.Automation.RequestType(); } RequestTypeInfo.Title = Title; if (Business.FacadeAutomation.GetRequestTypesBusiness().IsDuplicated(RequestTypeInfo)) { throw new Exception(Resources.Texts.DuplicatedTitle); } RequestTypeInfo.Save(); #region RequestTypeDetail Business.FacadeAutomation.GetSPBusiness().SP_DeleteOldTypeDetails(RequestTypeInfo.ID); List <long> LevelIDs = new List <long>(); for (int i = 0; i < Levels.Count; i++) { var LevelInfo = Business.FacadeAutomation.GetLevelsBusiness().GetByTitle(Levels[i].ToString()); if (LevelInfo != null) { LevelIDs.Add(LevelInfo.ID); } } for (int i = 0; i < LevelIDs.Count; i++) { var RequestDetails = new Data.Models.Generated.Automation.RequestTypeDetail(); RequestDetails.RequestTypeID = RequestTypeInfo.ID; RequestDetails.LevelID = LevelIDs[i]; RequestDetails.Priority = i; RequestDetails.Save(); } #endregion return(new string[2] { "1", Resources.Texts.Success }); } catch (Exception ex) { return(new string[2] { "0", ex.Message }); } }