Beispiel #1
0
 public static string GetDisplayName(this FormulaStatus status)
 {
     return(status.GetType().GetMember(status.ToString())
            .FirstOrDefault()?
            .GetCustomAttribute <DisplayAttribute>()?
            .Name ?? "");
 }
 public async Task ManageStatus(IEnumerable <ServerFormula> formulas, FormulaStatus status)
 {
     foreach (var formula in formulas)
     {
         statusManager
         .ChangeStatus(formula, status)
         .Notify();
     }
     await repository.SaveAsync();
 }
Beispiel #3
0
 /// <summary>
 /// Получение состояния
 /// </summary>
 /// <param name="status"></param>
 private static void Program_OnReceive(string name, FormulaStatus status, DateTime date)
 {
     // Если клиент не следит за полученной формулой или ее последнее обновление было после этого, то нет смысла принимать изменения
     if (observableFormulas.TryGetValue(name, out UpdateInfo info) && date < info.DateOfUpdate)
     {
         return;
     }
     observableFormulas[name] = new UpdateInfo(name, status, date);
     Console.Clear();
     Construct(date);
 }
Beispiel #4
0
 public UpdateInfo(string name, FormulaStatus newStatus, DateTime date = default)
 {
     if (date == default)
     {
         DateOfUpdate = DateTime.UtcNow;
     }
     else
     {
         DateOfUpdate = date;
     }
     Name   = name;
     Status = newStatus;
     Error  = null;
 }
Beispiel #5
0
        public INotifier ChangeStatus(ServerFormula formula, FormulaStatus newStatus)
        {
            if (formula is null)
            {
                throw new ArgumentNullException(nameof(formula));
            }

            formula.Status = newStatus;

            // Информация в обновлении
            info = new UpdateInfo(formula?.Name, newStatus);

            return(this);
        }
Beispiel #6
0
 private void FrmSingleTest_Load(object sender, EventArgs e)
 {
     materialDS = new MaterialDS();
     materialDS.Competed_Event += Competed_Event;
     formulaStatus              = new FormulaStatus();
     formulaStatus.Start_Event += Start_Event;
     numPanel1.ValueChange     += num_Click;
     BindData();
     Task.Factory.StartNew(() => {
         while (true)
         {
             if (Golbal.ParamClass.助剂配送状态 == "2")
             {
                 Competed_Event(null, null);
             }
             Thread.Sleep(1000);
         }
     });
 }