Моя попытка:
Service Contract и имплементация сервиса
[ServiceContract(CallbackContract = typeof(IWeatherCallback))]
public interface IWeather
{
[OperationContract]
string LogInToService(string login, string password);
[OperationContract(IsOneWay = true)]
void RegisterForUpdates(string userId, string city, string country);
}
public interface IWeatherCallback
{
[OperationContract(IsOneWay = true)]
void WeatherUpdate(OpenWeather weather);
}
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single,
InstanceContextMode = InstanceContextMode.PerCall)]
public class WeatherService : IWeather
{
public class CallbacksRequest
{
public List<string> Clients;
public string city;
public string country;
public IWeatherCallback callbackProcess;
public CallbacksRequest()
{
Clients = new List<string>();
}
}
public static List<CallbacksRequest> requests = new List<CallbacksRequest>();
public string LogInToService(string login, string password)
{
if (login == "admin" && password == "admin")
return "2kj2348wfhn34,ms";
else
return null;
}
public void RegisterForUpdates(string userId, string city, string country)
{
var suchRequest = requests.Where(x => x.city == city && x.country == country)
.Select((x,index) => new { Request = x, Index = index }).FirstOrDefault();
if(suchRequest == null)
{
CallbacksRequest newRequest = new CallbacksRequest() { city = city, country = country };
newRequest.Clients.Add(userId);
newRequest.callbackProcess = OperationContext.Current.GetCallbackChannel<IWeatherCallback>();
requests.Add(newRequest);
//Thread t = new Thread(new ThreadStart(SendUpdateToClient(newRequest)));
//t.IsBackground = true;
//t.Start();
}
else
{
if (!suchRequest.Request.Clients.Contains(userId))
requests[suchRequest.Index].Clients.Add(userId);
}
}
private void SendUpdateToClient(CallbacksRequest req)
{
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пользователь выбирает объект в ListBox и нажимает ButtonПрограмма должна по названию выбранного объекта найти в Google Картинках изображение и загрузить...
Как сделать копирование файлов в 1 часть папки, а 2 часть во внутреннею папку с использование Linq ?