Beispiel #1
0
        public ActionResult Edit(InteEmployeeModels model)
        {
            try
            {
                byte[] photoByte = null;
                PropertyReject();

                if (model.ListStore.Count(x => x.Selected) == 0)
                {
                    ModelState.AddModelError("ListStore", CurrentUser.GetLanguageTextFromKey("Please choose store"));
                }

                if (string.IsNullOrEmpty(model.Name))
                {
                    ModelState.AddModelError("Name", CurrentUser.GetLanguageTextFromKey("Name is required"));
                }

                if (!string.IsNullOrEmpty(model.ImageURL))
                {
                    model.ImageURL = model.ImageURL.Replace(Commons._PublicImages, "").Replace(Commons.Image100_100, "");
                }
                if (model.PictureUpload != null && model.PictureUpload.ContentLength > 0)
                {
                    Byte[] imgByte = new Byte[model.PictureUpload.ContentLength];
                    model.PictureUpload.InputStream.Read(imgByte, 0, model.PictureUpload.ContentLength);
                    model.PictureByte   = imgByte;
                    model.ImageURL      = Guid.NewGuid() + Path.GetExtension(model.PictureUpload.FileName);
                    model.PictureUpload = null;
                    photoByte           = imgByte;
                }
                //else
                //    model.ImageURL = model.ImageURL.Replace(Commons._PublicImages, "").Replace(Commons.Image100_100, "");
                ////Working Time
                //for (int i = 0; i < model.ListWorkingTime.Count; i++)
                //{
                //    var item = model.ListWorkingTime[i];
                //    item.IsOffline = (item.From.ToLower().Equals("off") || item.To.ToLower().Equals("off")) ? true : false;
                //    if (!item.From.ToLower().Equals("off") && !item.To.ToLower().Equals("off"))
                //    {
                //        item.FromTime = Convert.ToDateTime(item.From);
                //        item.ToTime = Convert.ToDateTime(item.To); ;
                //        if (item.FromTime.TimeOfDay > item.ToTime.TimeOfDay)
                //        {
                //            ModelState.AddModelError("WorkingTime", "From time must be less than To time");
                //            break;
                //        }
                //    }
                //}
                //model.ListEmpStore = new List<EmployeeOnStoreModels>();
                //model.ListEmpStore.Add(new EmployeeOnStoreModels
                //{
                //    RoleID = model.RoleID,
                //    StoreID = model.StoreID
                //});

                //model.ListStoreID = model.ListRoleWorkingTime.Select(x => x.StoreID).ToList();
                model.ListRoleWorkingTime = model.ListRoleWorkingTime.Where(x => x.Status != (int)Commons.EStatus.Deleted).ToList();
                if (model.ListRoleWorkingTime != null && model.ListRoleWorkingTime.Count > 0)
                {
                    InteEmployeeOnStoreModels EmpOnStore = null;
                    foreach (var item in model.ListRoleWorkingTime)
                    {
                        //============
                        if (item.RoleID == null)
                        {
                            ModelState.AddModelError("RoleWorkingTimeAlert_" + item.StoreID, CurrentUser.GetLanguageTextFromKey("Please choose role for store") + "[" + item.StoreName + "]");
                            break;
                        }
                        ////Role - Store
                        EmpOnStore             = new InteEmployeeOnStoreModels();
                        EmpOnStore.RoleID      = item.RoleID;
                        EmpOnStore.StoreID     = item.StoreID;
                        EmpOnStore.IsSyncPoins = item.IsSyncPoins;
                        model.ListEmpStore.Add(EmpOnStore);

                        ////Working Time
                        for (int i = 0; i < item.ListWorkingTime.Count; i++)
                        {
                            var itemWorkingTime = item.ListWorkingTime[i];
                            itemWorkingTime.IsOffline = (itemWorkingTime.From.Equals(CurrentUser.GetLanguageTextFromKey("OFF")) ||
                                                         itemWorkingTime.To.Equals(CurrentUser.GetLanguageTextFromKey("OFF"))) ? true : false;
                            if (!itemWorkingTime.From.Equals(CurrentUser.GetLanguageTextFromKey("OFF")) &&
                                !itemWorkingTime.To.Equals(CurrentUser.GetLanguageTextFromKey("OFF")))
                            {
                                itemWorkingTime.FromTime = Convert.ToDateTime(itemWorkingTime.From);
                                itemWorkingTime.ToTime   = Convert.ToDateTime(itemWorkingTime.To);
                                if (itemWorkingTime.FromTime.TimeOfDay > itemWorkingTime.ToTime.TimeOfDay)
                                {
                                    ModelState.AddModelError("RoleWorkingTimeAlert_" + item.StoreID, CurrentUser.GetLanguageTextFromKey("From time must be less than To time for store") + "[" + item.StoreName + "]");
                                    break;
                                }
                            }
                            //WorkingTime
                            model.ListWorkingTime.Add(itemWorkingTime);
                        }
                    }
                }

                if (!ModelState.IsValid)
                {
                    if ((ModelState["PictureUpload"]) != null && (ModelState["PictureUpload"]).Errors.Count > 0)
                    {
                        model.ImageURL = "";
                    }
                    //model = GetDetail(model.ID, model.StoreID);

                    var lstStore = (SelectList)ViewBag.StoreID;
                    model.ListStore = lstStore.ToList();

                    if (model.ListRoleWorkingTime != null)
                    {
                        model.ListRoleWorkingTime.ForEach(x =>
                        {
                            x.GetListRole(x.StoreID, CurrentUser.ListOrganizationId);
                        });
                    }
                    Response.StatusCode = (int)HttpStatusCode.BadRequest;
                    return(PartialView("_Edit", model));
                }
                //====================
                string msg    = "";
                var    result = _factory.InsertOrUpdateEmployee(model, ref msg);
                if (result)
                {
                    //Save Image on Server
                    if (!string.IsNullOrEmpty(model.ImageURL) && model.PictureByte != null)
                    {
                        var          originalDirectory = new DirectoryInfo(string.Format("{0}Uploads\\", Server.MapPath(@"\")));
                        var          path = string.Format("{0}{1}", originalDirectory, model.ImageURL);
                        MemoryStream ms   = new MemoryStream(photoByte, 0, photoByte.Length);
                        ms.Write(photoByte, 0, photoByte.Length);
                        System.Drawing.Image imageTmp = System.Drawing.Image.FromStream(ms, true);

                        ImageHelper.Me.SaveCroppedImage(imageTmp, path, model.ImageURL, ref photoByte);
                        model.PictureByte = photoByte;

                        FTP.Upload(model.ImageURL, model.PictureByte);

                        ImageHelper.Me.TryDeleteImageUpdated(path);
                    }
                    return(RedirectToAction("Index"));
                }
                else
                {
                    //return PartialView("_Edit", model);
                    ModelState.AddModelError("name", msg);
                    //model = GetDetail(model.ID, model.StoreID);

                    var lstStore = (SelectList)ViewBag.StoreID;
                    model.ListStore = lstStore.ToList();

                    /*===*/
                    if (model.ListRoleWorkingTime != null)
                    {
                        model.ListRoleWorkingTime.ForEach(x =>
                        {
                            x.GetListRole(x.StoreID, CurrentUser.ListOrganizationId);
                        });
                    }
                    Response.StatusCode = (int)HttpStatusCode.BadRequest;
                    return(PartialView("_Edit", model));
                }
            }
            catch (FormatException fEx)
            {
                _logger.Error("Employee_Edit: " + fEx.Message);
                ModelState.AddModelError("name", CurrentUser.GetLanguageTextFromKey(fEx.Message));
                //model = GetDetail(model.ID, model.StoreID);

                var lstStore = (SelectList)ViewBag.StoreID;
                model.ListStore = lstStore.ToList();

                /*===*/
                if (model.ListRoleWorkingTime != null)
                {
                    model.ListRoleWorkingTime.ForEach(x =>
                    {
                        x.GetListRole(x.StoreID, CurrentUser.ListOrganizationId);
                    });
                }
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(PartialView("_Edit", model));
            }
            catch (Exception ex)
            {
                _logger.Error("Employee_Edit: " + ex);
                //return new HttpStatusCodeResult(400, ex.Message);

                ModelState.AddModelError("name", CurrentUser.GetLanguageTextFromKey("Have an error"));
                //model = GetDetail(model.ID, model.StoreID);

                var lstStore = (SelectList)ViewBag.StoreID;
                model.ListStore = lstStore.ToList();

                /*===*/
                if (model.ListRoleWorkingTime != null)
                {
                    model.ListRoleWorkingTime.ForEach(x =>
                    {
                        x.GetListRole(x.StoreID, CurrentUser.ListOrganizationId);
                    });
                }
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(PartialView("_Edit", model));
            }
        }
Beispiel #2
0
        public ActionResult Search(InteEmployeeViewModels model)
        {
            try
            {
                var data   = _factory.GetListEmployee(model.StoreID, null, CurrentUser.ListOrganizationId);
                var data02 = new List <InteEmployeeModels>();
                foreach (var item in data)
                {
                    item.ImageURL = string.IsNullOrEmpty(item.ImageURL) ? Commons.Image100_100 : item.ImageURL;
                    if (item.ListEmpStore != null && item.ListEmpStore.Count > 0)
                    {
                        item.StoreName = item.ListEmpStore[0].StoreName;
                        item.RoleName  = item.ListEmpStore[0].RoleName;
                        item.StoreID   = item.ListEmpStore[0].StoreID;
                        item.RoleID    = item.ListEmpStore[0].RoleID;
                    }
                    //======
                    if (item.ListEmpStore != null && item.ListEmpStore.Count > 1)
                    {
                        InteEmployeeModels emp = null;
                        for (int i = item.ListEmpStore.Count - 1; i >= 1; i--)
                        {
                            InteEmployeeOnStoreModels empOnStore = item.ListEmpStore[i];

                            List <InteEmployeeOnStoreModels> ListEmpStore = new List <InteEmployeeOnStoreModels>();
                            ListEmpStore.Add(new InteEmployeeOnStoreModels
                            {
                                EmployeeID = item.ID,
                                RoleID     = empOnStore.RoleID,
                                RoleName   = empOnStore.RoleName,
                                StoreID    = empOnStore.StoreID,
                                StoreName  = empOnStore.StoreName
                            });

                            emp = new InteEmployeeModels()
                            {
                                BirthDate       = item.BirthDate,
                                City            = item.City,
                                Country         = item.Country,
                                Email           = item.Email,
                                Gender          = item.Gender,
                                HiredDate       = item.HiredDate,
                                ID              = item.ID,
                                ImageURL        = item.ImageURL,
                                IsActive        = item.IsActive,
                                ListMarital     = item.ListMarital,
                                ListRole        = item.ListRole,
                                ListWorkingTime = item.ListWorkingTime,
                                Marital         = item.Marital,
                                Mode            = item.Mode,
                                Name            = item.Name,
                                Phone           = item.Phone,
                                Pincode         = item.Pincode,

                                RoleName     = empOnStore.RoleName,
                                StoreName    = empOnStore.StoreName,
                                StoreID      = empOnStore.StoreID,
                                RoleID       = empOnStore.RoleID,
                                ListEmpStore = ListEmpStore,

                                Street    = item.Street,
                                TimeItems = item.TimeItems,
                                Zipcode   = item.Zipcode
                            };

                            data02.Add(emp);
                            //item.ListEmpStore.Remove(empOnStore);
                        }
                    }
                }
                data.AddRange(data02);
                if (model.ListStores != null && model.ListStores.Count > 0)
                {
                    if (data != null && data.Count > 0)
                    {
                        data = data.Where(x => model.ListStores.Contains(x.StoreID)).ToList();
                    }
                }
                model.ListItem = data;
            }
            catch (Exception e)
            {
                _logger.Error("Employee_Search: " + e);
                return(new HttpStatusCodeResult(400, e.Message));
            }
            return(PartialView("_ListData", model));
        }