I have some simple code to check if data exist in entity, when I save new data with isoverdue = true
and data exists, it will show alert that data exists.
private string _entityname = "tss_rating";
QueryExpression Query = new QueryExpression(_entityname);
Query.ColumnSet = new ColumnSet(true);
Query.Criteria.AddCondition("tss_isoverdue", ConditionOperator.Equal, true);
EntityCollection Items = organizationService.RetrieveMultiple(Query);
if (Items.Entities.Count > 0)
{
Entity entity = new Entity(_entityname);
if (entity.Contains("tss_isoverdue") && entity.Attributes["tss_isoverdue"].Equals(true)) // this if condition cannot be fire when input data
{
throw new Exception("IsOverdue with Yes Value is Exist....cannot create same data...!");
}
}
Need suggestions.
UPDATE CODE AND IT WORKED:
public void Form_OnCreate_PreOperation(IOrganizationService organizationService, IPluginExecutionContext pluginExceptionContext, Entity CurrentEntity)
{
try
{
QueryExpression Query = new QueryExpression(pluginExceptionContext.PrimaryEntityName);
Query.ColumnSet = new ColumnSet(true);
Query.Criteria.AddCondition("tss_isoverdue", ConditionOperator.Equal, true);
EntityCollection Items = organizationService.RetrieveMultiple(Query);
if (Items.Entities.Count > 0)
{
if (CurrentEntity.Contains("tss_isoverdue"))
{
if ((bool)CurrentEntity.Attributes["tss_isoverdue"] == true)
throw new Exception("IsOverdue with Yes Value is Exist....cannot create same data...!");
}
}
}
catch (Exception ex)
{
throw new InvalidPluginExecutionException(_classname + ".Form_OnCreate_PreOperation: " + ex.Message.ToString());
}
}