using System;
using System.Collections.Generic;
using BeWo.Service.Invoicing;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;

namespace BloemelingUndTeckhaus.Invoicing
{
	public class CustomInvoiceFactory : InvoiceFactory
	{
		public override InvoiceCreation CreateInvoiceCreator(string specificId, string tenant, Dictionary<CompactSupportConceptDC, List<ServiceRecordDC>> supportConcepts2ServiceRecords)
		{
            foreach (var list in supportConcepts2ServiceRecords.Values)
            {

                foreach (var sr in list)
                {
                    var sd = sr.ServiceDescription.Category;
                    var ic = GetInvoiceCreatorForCategory(sd);
                    if (ic != null)
                        return ic;
                }
            }
            return new SoziotherapieInvoiceCreation();
		}

        private InvoiceCreation GetInvoiceCreatorForCategory(ServiceCategoryDC sd)
        {
            if (sd != null && !String.IsNullOrEmpty(sd.Name))
            {
                String cat = sd.Name.ToLower().Trim();
                if (cat.IndexOf("assistenz") >= 0)
                {
                    return new BeWoRueckenwindAssistenzInvoiceCreation();
                }

            }
            return null;
        }
    }
}
