コード例 #1
0
        private CheckCheckSerialNumberResponse DoCheckSerialNumber()
        {
            CheckCheckSerialNumberResponse response = new CheckCheckSerialNumberResponse();
            SerialNumberRepository snRepository = new SerialNumberRepository();
            string number = string.Empty;
            if(Request["SNValue"] != null)
                number = Request["SNValue"].ToString();
            SerialNumber sn = snRepository.GetByNumber(number);
            string ip = Request.UserHostAddress;
            //http://api.ipinfodb.com/v3/ip-city/?key=5ebf5803d4420744d4253fc2db0f2f6c578eb151ff71a0416e8b6bdcdcabab86&ip=74.125.45.100
            string city = ResolveCityByIp(ip);

            // If you want it formated in some other way.
            var headers = String.Empty;
            foreach (var key in Request.Headers.AllKeys)
                headers += key + "=" + Request.Headers[key] + Environment.NewLine;
            try
            {
                snRepository.TrackSerialNumber(number, headers, Request.UserHostAddress, city);
            }
            catch (Exception)
            {

            }

            if (sn != null)
            {
                bool _2year = false;
                Erc.Apple.Data.Services services = new Erc.Apple.Data.Services();
                if (sn.ServiceID != null)
                {
                    Erc.Apple.Data.Service service = services.GetByID(sn.ServiceID.Value);
                    if (service != null)
                        response.ServiceCenter = (string.IsNullOrEmpty(service.Name)) ? "<Unknown name>" : service.Name;

                    try
                    {
                        _2year = services.Check2yearWarranty(number);
                        response.ExtraWarranty = _2year;
                    }
                    catch (Exception)
                    {

                    }
                }
                response.Message = "Serial number is valid.";

            }
            else
            {
                response.Message = "Invalid serial number.";
                response.IsValid = false;
            }
            return response;
        }
コード例 #2
0
        private CheckCheckSerialNumberResponse DoCheckSerialNumber()
        {
            CheckCheckSerialNumberResponse response = new CheckCheckSerialNumberResponse();
            SerialNumberRepository snRepository = new SerialNumberRepository();
            string number = string.Empty;
            if (Request["SNValue"] != null)
                number = Request["SNValue"].ToString().ToUpperInvariant();

            string BuyDate = string.Empty;
            if (Request["BuyDate"] != null)
                BuyDate = Request["BuyDate"].ToString();

            string Email = string.Empty;
            if (Request["Email"] != null)
                Email = Request["Email"].ToString();

            int seller = 0;
            try
            {
                if (Request["Seller"] != null)
                    seller = int.Parse(Request["Seller"].ToString());
            }
            catch (Exception)
            {
                response.IsValid = false;
                response.Message = "invalid seller";
                return response;
            }
            if (string.IsNullOrEmpty(Email.Trim()))
            {
                response.IsValid = false;
                response.Message = "invalid email";
                return response;
            }
            if (seller == 0)
            {
                response.IsValid = false;
                response.Message = "invalid seller";
                return response;
            }
            List<string> list = (new iPadActionSerials()).GetSerialNumbers();
            if (list.Contains(number))
            {
                response.IsValid = false;
                response.Message = "duplicate number";
                return response;
            }

            DateTime buydate = DateTime.MinValue;
            if(!DateTime.TryParseExact(BuyDate, "dd.MM.yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out buydate))
            {
                response.Message = "invalid date";
                response.IsValid = false;
                return response;
            }

            if (buydate < new DateTime(2012, 12, 1) || buydate > new DateTime(2013, 1, 10))
            {
                response.IsValid = false;
                response.Message = "invalid daterange";
                return response;
            }

            ResolveCity();

            iPadActionSerials rep = new iPadActionSerials();
            var item = new iPadActionSerial { Serial = number, BuyDate = buydate, Email = Email, Seller = seller, SellerName= Sellers.FirstOrDefault(s=>s.ID==seller).Name };

            try
            {
                item.ID = rep.Add(item);

                SendMail(item);
                SendEmail(item.ID, item.Status, item.Email, item.Serial);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("iPadAction: " + ex.ToString());
            }

            return response;
        }