public HttpStatusCodeResult InsertCheckinProfile()
        {
            var                    file                   = Request.Files.Count == 0 ? null : Request.Files[0];
            var                    json                   = JsonConvert.DeserializeObject <CheckinProfilesModel>(Request["jsonD"]);
            CheckinProfiles        checkinProfile         = MapCheckinProfile(json);
            CheckinProfileSettings checkinProfileSettings = MapCheckinProfileSettings(json.CheckinProfileId, json.CheckinProfileSettings, file);

            if (json.CheckinProfileId == 0)
            {
                CurrentDatabase.CheckinProfiles.InsertOnSubmit(checkinProfile);
                CurrentDatabase.SubmitChanges();
                checkinProfileSettings.CheckinProfileId = checkinProfile.CheckinProfileId;
                CurrentDatabase.CheckinProfileSettings.InsertOnSubmit(checkinProfileSettings);
            }

            CurrentDatabase.SubmitChanges();

            return(new HttpStatusCodeResult(HttpStatusCode.Created));
        }
        private CheckinProfileSettings MapCheckinProfileSettings(int checkinProfileId, CheckinProfileSettingsModel jsonSettings, HttpPostedFileBase file)
        {
            CheckinProfileSettings checkinProfileSettings;

            if (checkinProfileId == 0)
            {
                checkinProfileSettings = new CheckinProfileSettings();
            }
            else
            {
                checkinProfileSettings = CurrentDatabase.CheckinProfileSettings.FirstOrDefault(c => c.CheckinProfileId == checkinProfileId);
            }

            checkinProfileSettings.CampusId                = jsonSettings.CampusId == -1 ? null : jsonSettings.CampusId;
            checkinProfileSettings.EarlyCheckin            = jsonSettings.EarlyCheckin;
            checkinProfileSettings.LateCheckin             = jsonSettings.LateCheckin;
            checkinProfileSettings.Testing                 = jsonSettings.Testing;
            checkinProfileSettings.TestDay                 = jsonSettings.TestDay;
            checkinProfileSettings.AdminPIN                = jsonSettings.AdminPIN;
            checkinProfileSettings.PINTimeout              = jsonSettings.PINTimeout;
            checkinProfileSettings.DisableJoin             = jsonSettings.DisableJoin;
            checkinProfileSettings.DisableTimer            = jsonSettings.DisableTimer;
            checkinProfileSettings.CutoffAge               = jsonSettings.CutoffAge;
            checkinProfileSettings.Logout                  = LogoutIsValid(jsonSettings.Logout) ? jsonSettings.Logout.PadLeft(5, '0') : "00000";
            checkinProfileSettings.Guest                   = jsonSettings.Guest;
            checkinProfileSettings.Location                = jsonSettings.Location;
            checkinProfileSettings.SecurityType            = jsonSettings.SecurityType;
            checkinProfileSettings.ShowCheckinConfirmation = jsonSettings.ShowCheckinConfirmation;

            if (file != null)
            {
                var DefaultHost = CurrentDatabase.Setting("DefaultHost", "");
                checkinProfileSettings.BackgroundImage     = StoreBGImage(file, checkinProfileSettings.BackgroundImage);
                checkinProfileSettings.BackgroundImageName = file.FileName;
                checkinProfileSettings.BackgroundImageURL  = $"/BackgroundImage/{checkinProfileSettings.BackgroundImage}?{DateTime.Now.ToString("yyMMddhhmmss")}";
            }

            return(checkinProfileSettings);
        }