예제 #1
0
        public bool UpdateData(string enckode, string username, string hwID)
        {
            bool result = true;

            using (var transaction = _dataManager.BeginTransaction())
            {
                try
                {
                    SerialNote serialNote = _dataManager.GetOne <SerialNote>((e => e.Kode == enckode));

                    if (serialNote == null)
                    {
                        return(false);
                    }
                    else
                    {
                        serialNote.Taken_Username = StringCipher.Encrypt(username, DataBaseHelper.GetSettingDB());
                        serialNote.Taken_HW_ID    = StringCipher.Encrypt(hwID, DataBaseHelper.GetSettingDB());
                        serialNote.Status         = StringCipher.Encrypt("USED", DataBaseHelper.GetSettingDB());
                        serialNote.ModiDate       = DateTime.Now;
                        _dataManager.Update(serialNote);
                        _dataManager.Save();
                        transaction.Commit();
                    }
                }
                catch (Exception)
                {
                    result = false;
                    transaction.Rollback();
                }
            }

            return(result);
        }
예제 #2
0
        public SettingModule(ISerialNoteBusiness serialNoteBusiness, ISettingClientBusiness settingClientBusiness, IUserSettingColumnBusiness userSettingColumnBusiness)
        {
            _serialNoteBusiness        = serialNoteBusiness;
            _settingClientBusiness     = settingClientBusiness;
            _userSettingColumnBusiness = userSettingColumnBusiness;

            Get["/setting/getTime"] = parameter =>
            {
                log.Debug("Start:/setting/getTime");
                List <UserTempSetting> timeSetting = new List <UserTempSetting>();
                try
                {
                    timeSetting = _userSettingColumnBusiness.GetUserTempSetting("JAM SETTING");
                    log.Debug("Get Time Success");
                }
                catch (Exception ex)
                {
                    //log.Debug( "Get User Failed : " + ex.Message );
                    log.Fatal("Error:/setting/getTime", ex);
                    return(Response.AsJson(new { code = HttpStatusCode.InternalServerError, message = $"Error, {ex.Message}" }));
                }

                var jsonBody = JsonConvert.SerializeObject(timeSetting);
                return(Response.AsJson(new { code = HttpStatusCode.OK, message = "Ok", body = jsonBody }));
            };

            Post["/setting/register_serialkey"] = parameter =>
            {
                try
                {
                    log.Info("Start : /setting/register_serialkey");
                    log.Info($"incoming request from IP:{this.Request.UserHostAddress}");
                    var body = Nancy.IO.RequestStream.FromStream(Request.Body).AsString();
                    log.Info("Deserialize object from json body");
                    RegisterSerialKey user = JsonConvert.DeserializeObject <RegisterSerialKey>(body);

                    _userSettingColumnBusiness.RegisterSerialKey(user.userName, user.key, user.serialKey);

                    return(Response.AsJson(new { code = HttpStatusCode.OK }));
                }
                catch (System.Exception ex)
                {
                    log.Fatal("Error : /setting/register_serialkey", ex);
                    return(Response.AsJson(new { code = HttpStatusCode.InternalServerError, message = $"Error, {ex.Message}" }));
                    //throw;
                }
            };

            Post["/setting/online_register_serialKey"] = parameter =>
            {
                try
                {
                    log.Info("Start : /setting/online_register_serialKey");
                    log.Info($"incoming request from IP:{this.Request.UserHostAddress}");
                    string body = Nancy.IO.RequestStream.FromStream(Request.Body).AsString();
                    log.Info("Deserialize object from json body");
                    RequestRegisteredSerialKey setting = JsonConvert.DeserializeObject <RequestRegisteredSerialKey>(body);

                    #region Get Unused Serial Key
                    log.Info("Get Unused Serial Key");
                    List <SerialNoteBusinessDataModel> listAvailableSerialNote = _serialNoteBusiness.RetrieveAvailableSerialNote();
                    #endregion

                    #region Compare Serial Key
                    log.Info("Compare Available Serial Key With Key : " + setting.serial);
                    SerialNote note = listAvailableSerialNote.Where(m => m.Dec_Kode == setting.serial).FirstOrDefault();
                    if (note != null)
                    {
                        log.Debug("Serial is found");
                        log.Info("End : /setting/online_register_serialKey");

                        //TODO: change value username and HW ID ok tambah parameter y
                        _serialNoteBusiness.UpdateData(note.Kode, setting.username, setting.HWId);

                        return(Response.AsJson(new { message = "Valid" }));
                    }
                    else
                    {
                        log.Debug("Serial not found");
                        log.Info("End : /setting/online_register_serialKey");

                        return(Response.AsJson(new { message = "Invalid Key" }, HttpStatusCode.NoContent));
                    }
                    #endregion
                }
                catch (System.Exception ex)
                {
                    log.Fatal("Error : /setting/online_register_serialKey", ex);
                    return(Response.AsJson(new { message = $"Error, {ex.Message}" }, HttpStatusCode.InternalServerError));

                    throw;
                }
            };

            Post["/setting/postSerialKey"] = parameter =>
            {
                try
                {
                    log.Info("Start : /setting/postSerialKey");
                    var body = Nancy.IO.RequestStream.FromStream(Request.Body).AsString();
                    log.Info("Deserialize object from json body");
                    var jsonBody = JsonConvert.DeserializeObject <SerialRequest>(body);

                    _settingClientBusiness.UpdateSerialKey(jsonBody.username, jsonBody.serialKey);

                    return(Response.AsJson(new { code = HttpStatusCode.OK, message = "Serial key berhasil" }));
                }
                catch (Exception ex)
                {
                    log.Fatal("Error : /setting/postSerialKey", ex);
                    return(Response.AsJson(new { code = HttpStatusCode.InternalServerError, message = $"Error, {ex.Message}" }));
                }
            };

            Post["/setting/SerialKeyExist"] = parameter =>
            {
                try
                {
                    log.Info("Start : /setting/SerialKeyExist");
                    var body = Nancy.IO.RequestStream.FromStream(Request.Body).AsString();
                    log.Info("Deserialize object from json body");
                    var jsonBody = JsonConvert.DeserializeObject <CheckSerialKeyRequest>(body);

                    bool isFound = _settingClientBusiness.IsSerialKeyExist(jsonBody.serialKey, jsonBody.username, jsonBody.cpuId);
                    if (!isFound)
                    {
                        List <SerialNoteBusinessDataModel> takenSerial = _serialNoteBusiness.RetrieveTakenSerialNote();
                        if (takenSerial.Where(s => s.Dec_Kode == jsonBody.serialKey && s.Dec_Taken_Username == jsonBody.username && s.Dec_Taken_HW_ID == jsonBody.cpuId).FirstOrDefault() != null)
                        {
                            isFound = true;
                        }
                    }

                    if (isFound)
                    {
                        return(Response.AsJson(new { message = "Serial key ditemukan" }));
                    }
                    else
                    {
                        return(Response.AsJson(new { message = "Serial Key Tidak Ditemukan" }, HttpStatusCode.NotFound));
                    }
                }
                catch (Exception ex)
                {
                    log.Fatal("Error : /setting/postSerialKey", ex);
                    return(Response.AsJson(new { message = $"Error, {ex.Message}" }, HttpStatusCode.ExpectationFailed));
                }
            };

            Post["/setting/retrieveSourceDB"] = parameter =>
            {
                try
                {
                    log.Info("Start : /setting/retrieveSourceDB");
                    var body = Nancy.IO.RequestStream.FromStream(Request.Body).AsString();
                    log.Info("Deserialize object from json body");
                    SourceDBRequest        source    = JsonConvert.DeserializeObject <SourceDBRequest>(body);
                    List <settingDBSource> lstSource = _settingClientBusiness.RetrieveSourceDB(source.username);

                    log.Info("Serialize json from body");
                    var jsonBody = JsonConvert.SerializeObject(lstSource);

                    return(Response.AsJson(new { code = HttpStatusCode.OK, message = "Success", body = jsonBody }));
                }
                catch (Exception ex)
                {
                    return(Response.AsJson(new { code = HttpStatusCode.InternalServerError, message = $"Error, {ex.Message}" }));
                }
            };

            Post["/setting/postSettingDBWithParam"] = parameter =>
            {
                try
                {
                    log.Info("Start : /setting/postSettingDBWithParam");
                    log.Info($"incoming request from IP:{this.Request.UserHostAddress}");
                    string ipRequest = Request.UserHostAddress;
                    var    body      = Nancy.IO.RequestStream.FromStream(Request.Body).AsString();
                    log.Info("Deserialize object from json body");
                    Newtonsoft.Json.Linq.JObject jObj     = Newtonsoft.Json.Linq.JObject.Parse(body);
                    Newtonsoft.Json.Linq.JToken  jMachine = jObj["machineInfo"];
                    Newtonsoft.Json.Linq.JToken  jBody    = jObj["body"];

                    List <DBSettings> lstSetDB = JsonConvert.DeserializeObject <List <DBSettings> >(jBody.ToString()).ToList();
                    List <USERAPP>    lstUser  = JsonConvert.DeserializeObject <List <USERAPP> >(jMachine.ToString()).ToList();
                    //Retrieve Data User Setting
                    if (lstSetDB != null && lstUser != null)
                    {
                        log.Info("Inserting user client ............");
                        _settingClientBusiness.InsertUserClient(lstUser.FirstOrDefault().userName, lstUser.FirstOrDefault().idMachine, lstUser.FirstOrDefault().guid,
                                                                lstUser.FirstOrDefault().phone, lstUser.FirstOrDefault().mail, lstUser.FirstOrDefault().port);
                        _settingClientBusiness.InsertXmlFile(lstUser.FirstOrDefault().userName, "setDB.xml", lstSetDB.FirstOrDefault().xml_content, "DATABASE", "");
                        log.Info("Inserting user nop, user setting db, user source db ............");
                        foreach (var item in lstSetDB)
                        {
                            foreach (var itemSetting in item.LstNop)
                            {
                                string username = lstUser.FirstOrDefault().userName;
                                if (!_settingClientBusiness.isUserNopExist(username, itemSetting.Nop))
                                {
                                    _settingClientBusiness.InsertUserNop(username, itemSetting.Nop, itemSetting.JenisPajak);
                                }
                                string  dir = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "sourceDB.xml");
                                DataSet ds  = new DataSet();
                                ds.Tables.Add(item.lstSourceDB.ToDataTable());
                                ds.WriteXml(dir);

                                string xmlSettDB = System.IO.File.ReadAllText(dir);
                                //insert into user_source_db
                                _settingClientBusiness.InsertUserSourceDatabase(username, itemSetting.Nop, xmlSettDB, ipRequest, item.NamaDB);
                                //insert into user_setting_database
                                _settingClientBusiness.InserUserSettingDatabase(username, itemSetting.Nop, itemSetting.JenisPajak, itemSetting.TarifPajak, item.QueryPajak,
                                                                                item.QueryDetail, itemSetting.Alias);
                            }
                        }
                        return(Response.AsJson(new { code = HttpStatusCode.OK, message = "Success", body = "" }));
                    }
                    else
                    {
                        log.Info("End : /setting/postSettingDBWithParam");
                        return(Response.AsJson(new { code = HttpStatusCode.Unauthorized, message = "Failed", body = string.Empty }));
                    }
                }
                catch (Exception ex)
                {
                    log.Fatal("Error : /setting/postSettingDBWithParam", ex);
                    return(Response.AsJson(new { code = HttpStatusCode.BadRequest, message = $"Error, {ex.Message}", body = string.Empty }));
                }
            };
        }