public UpdateCsCustom(WriterContext context, CustomUpdateMethod customUpdateMethod) : base(context) { CustomUpdate = customUpdateMethod; var updateColumns = customUpdateMethod.UpdateColumnNames.Split(','); var whereColumns = customUpdateMethod.WhereColumnNames.Split(','); foreach (var columnName in updateColumns) { if (Context.Table.Columns.All(x => x.ColumnName != columnName)) { throw new ArgumentException("InvalidColumnName:" + columnName); } } foreach (var columnName in whereColumns) { if (Context.Table.Columns.All(x => x.ColumnName != columnName)) { throw new ArgumentException("InvalidColumnName:" + columnName); } } _procedureParameters = from c in Context.Table.Columns where updateColumns.Contains(c.ColumnName) || whereColumns.Contains(c.ColumnName) || Names.GenericUpdateInformationColumns.Contains(c.ColumnName) select c; }
void WriteCustomUpdate(CustomUpdateMethod customUpdateMethod) { var naming = Context.Naming; if (customUpdateMethod.Comment != null) { WriteLine("/// <summary>"); WriteLine("///" + PaddingForComment + "Updates only one record of {0}", naming.DatabaseTableFullPath); WriteLine("/// </summary>"); } WriteLine("public GenericResponse<int> {1}({2}Request request, ObjectHelper objectHelper)", naming.ContractName, customUpdateMethod.DotNetMethodName, naming.ClassNameOfOrchestration); WriteLine("{"); Padding++; WriteLine("var returnObject = CreateResponse<int>(objectHelper);"); WriteLine(); WriteLine("var bo{0} = new BOA.Business.{1}.{0}(objectHelper.Context);", naming.ClassNameOfBusiness, naming.NamespaceName); var parameterPart = "request.DataContract"; WriteLine(); WriteLine("var response = bo{0}.{1}({2});", naming.ClassNameOfBusiness, customUpdateMethod.DotNetMethodName, parameterPart); WriteLine("if (!response.Success)"); WriteLine("{"); Padding++; WriteLine("return returnObject.Add(response);"); Padding--; WriteLine("}"); WriteLine(); WriteLine("returnObject.Value = response.Value;"); WriteLine(); WriteLine("return returnObject;"); Padding--; WriteLine("}"); }