Ejemplo n.º 1
0
        public IHttpActionResult DeleteSuperAdminById(int id)
        {
            string logAPI = "[Post] " + Request.RequestUri.ToString();

            using (var ctx = new SFDatabaseEntities())
            {
                var superAdmin = ctx.SuperAdmin
                                 .Where(s => s.Id == id)
                                 .FirstOrDefault();
                if (superAdmin != null)
                {
                    superAdmin.DeletedFlag = true;
                    try
                    {
                        ctx.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        StringBuilder logMessage = LogUtility.BuildExceptionMessage(ex);
                        Startup._sfAppLogger.Error(logAPI + logMessage);
                        return(InternalServerError());
                    }
                }
                else
                {
                    return(NotFound());
                }
            }
            return(Ok("Success"));
        }
Ejemplo n.º 2
0
        public IHttpActionResult Delete(int factoryId)
        {
            using (var ctx = new SFDatabaseEntities())
            {
                var factory = ctx.Factory
                              .Where(s => s.Id == factoryId)
                              .FirstOrDefault();
                if (factory != null)
                {
                    factory.DeletedFlag = true;
                    try
                    {
                        ctx.SaveChanges();
                    }
                    catch
                    {
                        return(InternalServerError());
                    }
                }
                else
                {
                    return(NotFound());
                }
            }

            return(Ok("Success"));
        }
Ejemplo n.º 3
0
        public IHttpActionResult AddFactoryFormData([FromBody] FactoryModels.Edit factory)
        {
            JavaScriptSerializer js = new JavaScriptSerializer();
            string logForm          = "Form : " + js.Serialize(factory);
            string logAPI           = "[Post] " + Request.RequestUri.ToString();

            if (!ModelState.IsValid || factory == null)
            {
                Startup._sfAppLogger.Warn(logAPI + " || Input Parameter not expected || " + logForm);
                return(BadRequest("Invalid data"));
            }

            var newFactory = new Factory()
            {
                Name        = factory.Name,
                Description = factory.Description,
                CompanyId   = factory.CompanyId,
                Latitude    = (float)factory.Latitude,
                Longitude   = (float)factory.Longitude,
                CultureInfo = factory.CultureInfoId,
                TimeZone    = factory.TimeZone,
                CreatedAt   = DateTime.Parse(DateTime.Now.ToString()),
                DeletedFlag = false
            };

            using (var ctx = new SFDatabaseEntities())
            {
                ctx.Factory.Add(newFactory);
                try
                {
                    ctx.SaveChanges();
                }
                catch (Exception ex)
                {
                    StringBuilder logMessage = LogUtility.BuildExceptionMessage(ex);
                    logMessage.AppendLine(logForm);
                    Startup._sfAppLogger.Error(logAPI + logMessage);

                    return(InternalServerError(ex));
                }
            }
            return(Json(new { id = newFactory.Id }));
        }
Ejemplo n.º 4
0
        public IHttpActionResult ChangePassword(int id, [FromBody] ChangePasswordModels newPasswords)
        {
            string logForm = "Form : " + Startup._jsSerializer.Serialize(newPasswords);
            string logAPI  = "[Post] " + Request.RequestUri.ToString();

            if (!ModelState.IsValid)
            {
                return(BadRequest("Invalid data"));
            }

            using (var ctx = new SFDatabaseEntities())
            {
                var existingSuperAdmin = ctx.SuperAdmin
                                         .Where(s => s.Id == id)
                                         .FirstOrDefault();

                if (existingSuperAdmin == null)
                {
                    return(NotFound());
                }

                if (Crypto.VerifyHashedPassword(existingSuperAdmin.Password, newPasswords.OldPassword))
                {
                    existingSuperAdmin.Password = Crypto.HashPassword(newPasswords.NewPassword);
                    try
                    {
                        ctx.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        StringBuilder logMessage = LogUtility.BuildExceptionMessage(ex);
                        logMessage.AppendLine(logForm);
                        Startup._sfAppLogger.Error(logAPI + logMessage);
                        return(InternalServerError());
                    }
                }
                else
                {
                    return(Unauthorized());
                }
            }
            return(Ok("Success"));
        }
Ejemplo n.º 5
0
        public IHttpActionResult EditSuperAdminById(int id, [FromBody] SuperAdminModels.Edit superAdmin)
        {
            string logForm = "Form : " + Startup._jsSerializer.Serialize(superAdmin);
            string logAPI  = "[Post] " + Request.RequestUri.ToString();

            if (!ModelState.IsValid)
            {
                return(BadRequest("Invalid data"));
            }


            using (var ctx = new SFDatabaseEntities())
            {
                var existingSuperAdmin = ctx.SuperAdmin
                                         .Where(s => s.Id == id)
                                         .FirstOrDefault();
                if (existingSuperAdmin != null)
                {
                    existingSuperAdmin.FirstName   = superAdmin.FirstName;
                    existingSuperAdmin.LastName    = superAdmin.LastName;
                    existingSuperAdmin.Email       = superAdmin.Email;
                    existingSuperAdmin.UpdatedAt   = DateTime.Parse(DateTime.Now.ToString());
                    existingSuperAdmin.DeletedFlag = superAdmin.DeletedFlag;
                    try
                    {
                        ctx.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        StringBuilder logMessage = LogUtility.BuildExceptionMessage(ex);
                        logMessage.AppendLine(logForm);
                        Startup._sfAppLogger.Error(logAPI + logMessage);
                        return(InternalServerError());
                    }
                }
                else
                {
                    return(NotFound());
                }

                return(Ok("Success"));
            }
        }
Ejemplo n.º 6
0
        public IHttpActionResult AddRolesByEmployeeId(int id, [FromBody] EmployeeRoleModels.Edit roles)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            using (var ctx = new SFDatabaseEntities())
            {
                foreach (var roleId in roles.UserRoleId)
                {
                    EmployeeInRole newEmployeeRole = new EmployeeInRole()
                    {
                        EmployeeID  = id,
                        UserRoleID  = roleId,
                        CreatedAt   = DateTime.Parse(DateTime.Now.ToString()),
                        DeletedFlag = false
                    };
                    ctx.EmployeeInRole.Add(newEmployeeRole);
                }

                StringBuilder logMessage = new StringBuilder();
                try
                {
                    ctx.SaveChanges();
                    RedisCacheHelper.DeleteEmployeeCache(id);

                    logMessage.AppendLine("(AddRolesByEmployeeId) Delete EmployCache: " + id);
                    Startup._sfAppLogger.Debug(logMessage);
                    return(Ok());
                }
                catch (Exception ex)
                {
                    logMessage.AppendLine("(AddRolesByEmployeeId) Excepton on Delete EmployCache: " + id + "; Exception:" + ex.Message);
                    Startup._sfAppLogger.Error(logMessage);
                    return(InternalServerError());
                }
            }
        }
Ejemplo n.º 7
0
        public IHttpActionResult AddSuperAdmin([FromBody] SuperAdminModels.Edit superAdmin)
        {
            string logForm = "Form : " + Startup._jsSerializer.Serialize(superAdmin);
            string logAPI  = "[Post] " + Request.RequestUri.ToString();

            if (!ModelState.IsValid)
            {
                Startup._sfAppLogger.Warn(logAPI + " || Input Parameter not expected || " + logForm);
                return(BadRequest("Invalid data"));
            }

            using (var ctx = new SFDatabaseEntities())
            {
                SuperAdmin newSuperAdmin = new SuperAdmin()
                {
                    FirstName   = superAdmin.FirstName,
                    LastName    = superAdmin.LastName,
                    Email       = superAdmin.Email,
                    Password    = Crypto.HashPassword(superAdmin.Password),
                    CreatedAt   = DateTime.Parse(DateTime.Now.ToString()),
                    DeletedFlag = superAdmin.DeletedFlag
                };

                ctx.SuperAdmin.Add(newSuperAdmin);
                try
                {
                    ctx.SaveChanges();
                    return(Ok());
                }
                catch (Exception ex)
                {
                    StringBuilder logMessage = LogUtility.BuildExceptionMessage(ex);
                    logMessage.AppendLine(logForm);
                    Startup._sfAppLogger.Error(logAPI + logMessage);
                    return(InternalServerError());
                }
            }
        }
Ejemplo n.º 8
0
        public IHttpActionResult EditFactoryFormData(int factoryId, [FromBody] FactoryModels.Edit factory)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Invalid data"));
            }
            using (var ctx = new SFDatabaseEntities())
            {
                var existingFactory = ctx.Factory
                                      .Where(s => s.Id == factoryId && s.DeletedFlag == false)
                                      .FirstOrDefault();
                if (existingFactory != null)
                {
                    existingFactory.Name        = factory.Name;
                    existingFactory.Description = factory.Description;
                    existingFactory.TimeZone    = factory.TimeZone;
                    existingFactory.Latitude    = factory.Latitude;
                    existingFactory.Longitude   = factory.Longitude;
                    existingFactory.CultureInfo = factory.CultureInfoId;
                    existingFactory.UpdatedAt   = DateTime.Parse(DateTime.Now.ToString());

                    try
                    {
                        ctx.SaveChanges();
                    }
                    catch
                    {
                        return(InternalServerError());
                    }
                }
                else
                {
                    return(NotFound());
                }
            }
            return(Ok("Success"));
        }
Ejemplo n.º 9
0
        public async Task <HttpResponseMessage> UploadFactoryPhotoFile(int factoryId)
        {
            // Check if the request contains multipart/form-data.
            if (!Request.Content.IsMimeMultipartContent())
            {
                return(Request.CreateResponse(HttpStatusCode.UnsupportedMediaType));
            }

            using (var ctx = new SFDatabaseEntities())
            {
                var existingFactory = ctx.Factory
                                      .Where(s => s.Id == factoryId && s.DeletedFlag == false)
                                      .FirstOrDefault();

                if (existingFactory == null)
                {
                    return(Request.CreateResponse(HttpStatusCode.NotFound));
                }

                string root     = Path.GetTempPath();
                var    provider = new MultipartFormDataStreamProvider(root);

                try
                {
                    // Read the form data.
                    string fileAbsoluteUri = "";
                    await Request.Content.ReadAsMultipartAsync(provider);

                    char[] trimChar = { '\"' };

                    //FileData
                    foreach (MultipartFileData fileData in provider.FileData)
                    {
                        string formColumnName   = fileData.Headers.ContentDisposition.Name.ToLower().Trim(trimChar);
                        string fileExtenionName = fileData.Headers.ContentDisposition.FileName.Split('.')[1].ToLower().Trim(trimChar);
                        if (formColumnName.Equals("image"))
                        {
                            if (fileExtenionName.Equals("png") || fileExtenionName.Equals("jpg"))
                            {
                                string          uploadFilePath  = "company-" + existingFactory.CompanyId + "/factory/" + factoryId + "-default." + fileExtenionName;
                                SharedFunctions sharedFunctions = new SharedFunctions();
                                fileAbsoluteUri = sharedFunctions.SaveFiletoStorage(fileData.LocalFileName, uploadFilePath, "images");
                            }
                            else
                            {
                                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Wrong extension name"));
                            }
                        }
                    }

                    if (fileAbsoluteUri.Equals(""))
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "File is empty"));
                    }

                    //Edit factory logo path
                    existingFactory.PhotoURL = fileAbsoluteUri;
                    ctx.SaveChanges();

                    var returnObj = new
                    {
                        imageURL = fileAbsoluteUri
                    };
                    return(Request.CreateResponse(HttpStatusCode.OK, returnObj));
                }
                catch (System.Exception e)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e));
                }
            }
        }
Ejemplo n.º 10
0
        public IHttpActionResult EditRolesByEmployeeId(int id, [FromBody] EmployeeRoleModels.Edit roles)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            using (var ctx = new SFDatabaseEntities())
            {
                var existingRoles = ctx.EmployeeInRole
                                    .Where(s => s.EmployeeID == id)
                                    .Select(s => s).ToList();

                //調整現有的Role
                List <int> existingRolesId = new List <int>();
                if (existingRoles != null)
                {
                    foreach (var er in existingRoles)
                    {
                        if (roles == null || (!roles.UserRoleId.Contains(er.UserRoleID) && !er.DeletedFlag))
                        {
                            er.DeletedFlag = true;
                            er.UpdatedAt   = DateTime.Parse(DateTime.Now.ToString());
                        }
                        else if (roles.UserRoleId.Contains(er.UserRoleID) && er.DeletedFlag)
                        {
                            er.DeletedFlag = false;
                            er.UpdatedAt   = DateTime.Parse(DateTime.Now.ToString());
                        }

                        existingRolesId.Add(er.UserRoleID);
                    }
                }
                //新增沒有的Role
                if (roles != null)
                {
                    foreach (var userRoleId in roles.UserRoleId)
                    {
                        if (existingRoles == null || (userRoleId > 0 && !existingRolesId.Contains(userRoleId)))
                        {
                            var newEmployeeRole = new EmployeeInRole()
                            {
                                EmployeeID = id,
                                UserRoleID = userRoleId,
                                CreatedAt  = DateTime.Parse(DateTime.Now.ToString())
                            };
                            ctx.EmployeeInRole.Add(newEmployeeRole);
                        }
                    }
                }

                StringBuilder logMessage = new StringBuilder();
                try
                {
                    ctx.SaveChanges();
                    RedisCacheHelper.DeleteEmployeeCache(id);

                    logMessage.AppendLine("(EditRolesByEmployeeId )Delete EmployCache: " + id);
                    Startup._sfAppLogger.Debug(logMessage);
                    return(Ok());
                }
                catch (Exception ex)
                {
                    logMessage.AppendLine("(EditRolesByEmployeeId) Excepton on Delete EmployCache: " + id + "; Exception:" + ex.Message);
                    Startup._sfAppLogger.Error(logMessage);
                    return(InternalServerError());
                }
            }
        }