using System;
using System.Collections.Generic;
using Valg.EVA.Skanning.ServicesModel.ServiceContracts.CountResult.Write;

namespace Valg.EVA.Skanning.Commands.SetCountingLocked
{
    public class SetCountingLockedCommandResult
    {
        public static readonly SetCountingLockedCommandResult FailedResult = new SetCountingLockedCommandResult();

        private SetCountingLockedCommandResult()
        {
            Failed = true;
        }

        public SetCountingLockedCommandResult(DateTime updatedConcurrencyToken, Dictionary<int, BoxCountingToLock> expectedBoxCountingsToCreateResultFor)
        {
            ExpectedBoxCountingsToCreateResultFor = expectedBoxCountingsToCreateResultFor;
            UpdatedConcurrencyToken = updatedConcurrencyToken;
            Failed = false;
        }

        public bool Failed { get; private set; }
        public DateTime UpdatedConcurrencyToken { get; private set; }
        public Dictionary<int, BoxCountingToLock> ExpectedBoxCountingsToCreateResultFor { get; private set; }
    }
}
