こんにちは私はレンタカーのWebサービスを作成していますが、各タスクを互いに分離しておく必要があります。そこで、一般的な名、姓、年齢などの顧客向けのサービスを作成しました。また、採用日と採用日数を計算するために使用する採用日サービスも作成しました。費用)。
私の問題は、以下の(そして最終的には車)にリンクしようとしていることです 。これは、コンソールアプリを使用してこれらのさまざまなサービスをホストして練習するだけのセットアップの例です。IHireDates
ICustomers
以下は、IHireDateを顧客にリンクしようとしているICustomersおよびIHireDateサービスですが、その方法がわかりません。
ICustomer(サーバー側)
namespace WcfServiceLibrary3
{
#region Customer DataContract
[DataContract(Name = "Customers")]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
[Serializable]
public class Customers : ICustomers
{
[DataMember(Name = "CustomerID")]
public string CustomerID { get; set; }
[DataMember(Name = "FirstName")]
public string FirstName { get; set; }
[DataMember(Name = "LastName")]
public string LastName { get; set; }
[DataMember(Name = "Age")]
public string Age { get; set; }
IHireDates(サーバー側):
namespace WcfServiceLibrary3
{
#region HireDate DataContract
[DataContract(Name = "HireDate")]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
[Serializable]
public class HireDate : IHireDate
{
[DataMember(Name = "HireFromDate")]
public string HireFromDate { get; set; }
[DataMember(Name = "HireToDate")]
public string HireToDate { get; set; }
[DataMember(Name = "NumberOfDaysToHire")]
public string NumberOfDaysToHire { get; set; }
#endregion
#region Lists
List<HireDate> HireDates = new List<HireDate>();
#endregion
public void ICustomers.AddCustomerHireDates(string hirefromdate, string hiretodate, string customerID, string firstname, string lastname)
{
// not sure this will work
var result = ICustomers.Where(n => String.Equals(n.CustomerID, customerID)).FirstOrDefault();
if (result != null)
{
result.HireDates.Add(new ICustomers() { CustomerID = customerID, FirstName = firstname, LastName = lastname });
}
}
たとえば、これが正しいかどうかわからず、顧客にはどこの定義がないICustomers.AddCustomerHireDates
と言っています。ICustomers.Where
誰かが私を助けることができれば、このクロスLINQサービスをどのように行うのか本当にわかりません。私は非常に感謝しています。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.Runtime.InteropServices;
using System.ServiceModel;
namespace WcfServiceLibrary3
{
#region Customer DataContract
[DataContract(Name = "Customers")]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
[Serializable]
public class Customers : ICustomers
{
[DataMember(Name = "CustomerID")]
public string CustomerID { get; set; }
[DataMember(Name = "FirstName")]
public string FirstName { get; set; }
[DataMember(Name = "LastName")]
public string LastName { get; set; }
[DataMember(Name = "Age")]
public string Age { get; set; }
#endregion
#region Lists
List<Customers> customermembers = new List<Customers>();
int eCount = 0;
#endregion
public void AddCustomer(Customers customer)
{
customer.CustomerID = (++eCount).ToString();
customermembers.Add(customer);
//BinaryFormatter f = new BinaryFormatter();
//Stream w = new FileStream("c:\\list.dat", FileMode.Append);
//f.Serialize(w, staff);
//w.Close();
}
public void RemoveCustomer(string customerID)
{
customermembers.RemoveAll(s => s.CustomerID == customerID);
}
public List<Customers> GetCustomerCollection()
{
return customermembers;
}
public void UpdateCustomer(string customerID, Customers customer)
{
var findCustomerMember = customermembers.Where(s => s.CustomerID == customerID).FirstOrDefault();
if (findCustomerMember != null)
{
findCustomerMember.CustomerID = customer.CustomerID;
findCustomerMember.FirstName = customer.FirstName;
findCustomerMember.LastName = customer.LastName;
//findStaffMember.TimeAdded = staff.TimeAdded;
//BinaryFormatter f = new BinaryFormatter();
//Stream w = new FileStream("c:\\updatelist.dat", FileMode.Append);
//f.Serialize(w, staff);
//w.Close();
}
}
public List<Customers> GetCustomer(string anything)
{
List<Customers> customers = customermembers.Where(n =>
string.Equals(n.CustomerID, anything, StringComparison.CurrentCultureIgnoreCase)
|| string.Equals(n.FirstName, anything, StringComparison.CurrentCultureIgnoreCase)
|| string.Equals(n.LastName, anything, StringComparison.CurrentCultureIgnoreCase)
|| string.Equals(n.Age, anything, StringComparison.CurrentCultureIgnoreCase)
).ToList();
return customers;
}
}
}