Even though I have a redundant ToString method in the DataContract, returning the value of the ActivityType.Code property for the ActivityType class. I still do not get the value of the ActivityType.Code property on the client for binding grid.can one, let me know how the ToString method will be available for the Client.
Here is the code base
Data contract
[DataContract]
public class Activity
{
[DataMember]
public ActivityType ActivityTypeId { get; set; }
[DataMember]
public string Code { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public EntityStatus Status { get; set; }
}
[DataContract]
public enum EntityStatus
{
[EnumMember]
Active = 0,
[EnumMember]
Inactive = 1
}
[DataContract]
public class ActivityType
{
[DataMember]
public string Code { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string Description { get; set; }
public override string ToString()
{
if (Code != null)
{
return Code.ToString(CultureInfo.InvariantCulture);
}
else
{
return base.ToString();
}
}
}
Service implementation
public class TimeSheetManagementService : ITimeSheetManagementService
{
public List<BusinessEntities.Activity> GetActivities()
{
TimeSheetManagementDataController controller = new TimeSheetManagementDataController();
var activities = controller.GetActivities();
var activitiesresult = activities.Select(activity => new BusinessEntities.Activity()
{
ActivityTypeId =
new BusinessEntities.ActivityType()
{
Code = activity.ActivityType.Code,
Description =
activity.ActivityType.
Description,
Name = activity.ActivityType.Name
},
Code = activity.Code,
Description = activity.Description,
Status = (EntityStatus) Enum.Parse(typeof(EntityStatus),Convert.ToString((activity.Status==true)?1:0))
});
return activitiesresult.ToList();
}
}
Customer implementation
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField runat="server" DataField="Code"/>
<asp:BoundField runat="server" DataField="Description"/>
<asp:BoundField runat="server" DataField="Status"/>
<asp:BoundField runat="server" DataField="ActivityTypeId"/>
</Columns>
</asp:GridView>
Output
Code Description Status ActivityTypeId
ACT2 Requirement Feasibility Study Inactive TimeSheetManagementServiceRef.ActivityType
ACT1 Requirement analysis Inactive TimeSheetManagementServiceRef.ActivityType
source
share