private DateTime?GetDeliveryTimeFromReportDetailItem(ReportDetailItem reportDetailItem)
        {
            if (String.IsNullOrEmpty(reportDetailItem.CompletedOn))
            {
                return(null);
            }

            DateTime result;

            // UTC +2
            if (DateTime.TryParseExact(reportDetailItem.CompletedOn, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out result))
            {
                return(result);
            }

            return(null);
        }
        private FailReasonEnum?GetFailReasonFromReportDetailItem(ReportDetailItem reportDetailItem)
        {
            if (reportDetailItem == null)
            {
                return(null);
            }

            FailReasonEnum result;

            switch (reportDetailItem.FailReason)
            {
            case "cannot_deliver":
                result = FailReasonEnum.Unknown;
                break;

            case "memory_capacity_exceeded":
                result = FailReasonEnum.MemoryCapacityExceeded;
                break;

            case "foreign_operator":
                result = FailReasonEnum.UnsupportedOperator;
                break;

            case "foreign_country":
                result = FailReasonEnum.UnsupportedCountry;
                break;

            case "number_not_used":
                result = FailReasonEnum.NumberNotInUse;
                break;

            case "server_error":
                result = FailReasonEnum.InternalServerError;
                break;

            case "phone_closed":
                result = FailReasonEnum.CellPhoneOutOfGrid;
                break;

            default:
                result = FailReasonEnum.Unknown;
                break;
            }

            return(result);
        }
        private OperatorEnum GetOperatorFromReportDetailItem(ReportDetailItem reportDetailItem)
        {
            if (String.IsNullOrEmpty(reportDetailItem.Operator))
            {
                return(OperatorEnum.Unknown);
            }

            if (reportDetailItem.Operator.ToLower() == "avea")
            {
                return(OperatorEnum.Avea);
            }

            if (reportDetailItem.Operator.ToLower() == "turkcell")
            {
                return(OperatorEnum.Turkcell);
            }

            if (reportDetailItem.Operator.ToLower() == "vodafone")
            {
                return(OperatorEnum.Vodafone);
            }

            return(OperatorEnum.Unknown);
        }