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

namespace Valg.EVA.Skanning.Commands.CreateCountingResult
{
    public class CreateCountingResultCommand
    {
        private readonly int countingId;
        private readonly DateTime countingConcurrencyToken;
        private readonly Dictionary<int, BoxCountingToLock> boxCountingsToLock;
        private readonly string generatedBy;
        private readonly string reportingUnitIdentifier;
        private readonly bool isInEmergencyMode;

        public CreateCountingResultCommand(int countingId, DateTime countingConcurrencyToken, Dictionary<int, BoxCountingToLock> boxCountingsToLock, string generatedBy, string reportingUnitIdentifier, bool isInEmergencyMode)
        {
            this.countingId = countingId;
            this.countingConcurrencyToken = countingConcurrencyToken;
            this.boxCountingsToLock = boxCountingsToLock;
            this.generatedBy = generatedBy;
            this.reportingUnitIdentifier = reportingUnitIdentifier;
            this.isInEmergencyMode = isInEmergencyMode;
        }

        public int CountingId
        {
            get { return countingId; }
        }
        public DateTime CountingConcurrencyToken
        {
            get { return countingConcurrencyToken; }
        }
        public Dictionary<int, BoxCountingToLock> BoxCountingsToLock
        {
            get { return boxCountingsToLock; }
        }
        public string GeneratedBy
        {
            get { return generatedBy; }
        }

        public string ReportingUnitIdentifier
        {
            get { return reportingUnitIdentifier; }
        }

        public bool IsInEmergencyMode
        {
            get { return isInEmergencyMode; }
        }
    }
}
