예제 #1
0
        private ValidationChecker VerifySaveFields(UserModel user)
        {
            StringBuilder sb       = new StringBuilder();
            bool          hasError = false;

            if (!CommonHelper.IsAlphaNumericWithLengthRange(user.UserName, 3, 100))
            {
                sb.Append("UserName is not valid. ");
                hasError = true;
            }
            if (!CommonHelper.IsAlphaAndSpacesOnlyWithLengthRange(user.FirstName, 2, 50))
            {
                sb.Append("FirstName is not valid. ");
                hasError = true;
            }
            if (!CommonHelper.IsAlphaAndSpacesOnlyWithLengthRange(user.LastName, 2, 50))
            {
                sb.Append("LastName is not valid. ");
                hasError = true;
            }
            if (!CommonHelper.IsValidEmail(user.PrimaryEmail))
            {
                sb.Append("Invalid email format.");
                hasError = true;
            }

            ValidationChecker checker = new ValidationChecker();

            checker.HasError = hasError;
            checker.Message  = sb.ToString();

            return(checker);
        }
예제 #2
0
        public IHttpActionResult UpdateUser(UserModel user)
        {
            ValidationChecker validator = VerifySaveFields(user);

            if (validator.HasError)
            {
                var validationResponse = new Response <UserModel>()
                {
                    DataItems = new List <UserModel>(), ResultCode = -1, ResultMessage = validator.Message
                };
                return(new HttpResult <Response <UserModel> >(validationResponse, Request));
            }

            Response <UserModel> data = adminRuleEngine.UpdateUser(user);

            if (data.ResultCode != 0)
            {
                if (data.ResultMessage.Contains("UNIQUE KEY"))
                {
                    data.ResultMessage = "This username is not available";
                }
                else
                {
                    data.ResultMessage = "Error while updating the user";
                }
            }

            return(new HttpResult <Response <UserModel> >(data, Request));
        }
예제 #3
0
    protected void ValidateDataInput(object source, ServerValidateEventArgs args)
    {
        if (ddlCamp.SelectedValue == "0")
        {
            args.IsValid        = false;
            CusVal.ErrorMessage = "Please choose a camp.";
            return;
        }

        if (txtCampSession.Text.Trim() == "")
        {
            args.IsValid        = false;
            CusVal.ErrorMessage = "Please enter a session name.";
            return;
        }

        if (!ValidationChecker.CheckSessionDate(txtStartDate.Text.Trim()))
        {
            args.IsValid        = false;
            CusVal.ErrorMessage = "Error in start session date.  The accepted format is mm/dd/yyyy.";
            return;
        }

        if (!ValidationChecker.CheckSessionDate(txtEndDate.Text.Trim()))
        {
            args.IsValid        = false;
            CusVal.ErrorMessage = "Error in end session date.  The accepted format is mm/dd/yyyy.";
            return;
        }

        DateTime startDate = DateTime.Parse(txtStartDate.Text.Trim());
        DateTime endDate   = DateTime.Parse(txtEndDate.Text.Trim());

        int result = DateTime.Compare(startDate, endDate);

        if (result >= 0)
        {
            args.IsValid        = false;
            CusVal.ErrorMessage = "Error in session dates.  The start date must be prior to the end date.";
            return;
        }

        int currentYear = Convert.ToInt32(Session["CampYear"]);

        if (!ValidationChecker.CheckSessionRange(startDate, endDate, currentYear))
        {
            args.IsValid        = false;
            CusVal.ErrorMessage = String.Format("Error in session dates.  The session range must be between 05/01/{0} and 09/30/{1}", currentYear, currentYear);
            return;
        }

        args.IsValid = true;
    }
예제 #4
0
        public async Task <RegistrationResponse> RegistrationAsync(RegistrationRequest registration)
        {
            var user = await _appDbContext.Users.SingleOrDefaultAsync(p => p.Login == registration.Login);

            if (user != null)
            {
                return new RegistrationResponse()
                       {
                           ErrorMessage = "User with same login already exist"
                       }
            }
            ;

            string salt    = Guid.NewGuid().ToString();
            var    newUser = new UserDto()
            {
                Active     = true,
                Login      = registration.Login,
                Password   = Hashing.GetPasswordHash(registration.Password, salt),
                Salt       = salt,
                CreateDate = DateTime.Now
            };

            var token = new TokenDto()
            {
                Code        = Guid.NewGuid().ToString(),
                CreatedDate = DateTime.Now
            };

            newUser.Tokens.Add(token);

            var isValid = ValidationChecker.Check <UserDto>(newUser, out var results);

            if (!isValid)
            {
                _logger.Log(LogLevel.Error, "Model is not valid because " + string.Join(", ", results.Select(s => s.ErrorMessage).ToArray()));

                return(new RegistrationResponse()
                {
                    ErrorMessage = "Server error"
                });
            }

            await _appDbContext.AddAsync <UserDto>(newUser);

            await _appDbContext.SaveChangesAsync();

            return(new RegistrationResponse()
            {
                Token = token.Code
            });
        }
예제 #5
0
        public IHttpActionResult AddUser(UserModel user)
        {
            ValidationChecker validator = VerifySaveFields(user);

            if (validator.HasError)
            {
                var validationResponse = new Response <UserModel>()
                {
                    DataItems = new List <UserModel>(), ResultCode = -1, ResultMessage = validator.Message
                };
                return(new HttpResult <Response <UserModel> >(validationResponse, Request));
            }

            //We need to generate a random encrypted password when creating a new user
            user.Password = CommonHelper.GenerateRandomString(10);

            Response <UserModel> data = adminRuleEngine.AddUser(user);

            if (data.ResultCode != 0)
            {
                data.ResultMessage = data.ResultMessage.Contains("UNIQUE KEY") ? "This username is not available" : "Error while adding the user";
            }
            else
            {
                //send the new user an email
                try
                {
                    adminRuleEngine.SendNewUserEmail(user);
                }
                catch (Exception exc)
                {
                    _logger.Error(exc);
                    data.ResultCode       = 0;
                    data.ResultMessage    = "User added successfully. Error while sending the email";
                    data.AdditionalResult = exc.Message;
                }
            }

            return(new HttpResult <Response <UserModel> >(data, Request));
        }
        private ValidationChecker VerifySaveFields(UserModel user)
        {
            StringBuilder sb       = new StringBuilder();
            bool          hasError = false;

            if (!CommonHelper.IsADUserNameValid(user.UserName))
            {
                sb.Append("UserName is not valid. ");
                hasError = true;
            }
            if (!CommonHelper.IsValidEmail(user.PrimaryEmail))
            {
                sb.Append("Invalid email format.");
                hasError = true;
            }

            ValidationChecker checker = new ValidationChecker
            {
                HasError = hasError,
                Message  = sb.ToString()
            };

            return(checker);
        }
예제 #7
0
        public ActionResult BeatPlanAddtion(HttpPostedFileBase file)
        {
            string path = null;
            List <ErrorTemplates>   errorTemp   = new List <ErrorTemplates>();
            List <WarningTemplates> warningTemp = new List <WarningTemplates>();
            AllErrors allErrors = new AllErrors();

            allErrors.Error       = null;
            allErrors.ShowHeader  = null;
            allErrors.WarnHeaders = null;
            allErrors.Warning     = null;
            int c1 = 0;
            int c2 = 0;

            try
            {
                if (file.ContentLength > 0)
                {
                    string filename = Path.GetFileName(file.FileName);

                    path = Server.MapPath("~/Seed Data/" + filename);
                    file.SaveAs(path);
                    ValidationChecker mapChecker         = new ValidationChecker();
                    List <string>     fileHeadersWarning = new List <string>();
                    List <string>     fileHeadersError   = new List <string>();
                    fileHeadersWarning.Add("ESM".ToLower());
                    fileHeadersWarning.Add("FinalBeatName".ToLower());
                    fileHeadersWarning.Add("BeatDay".ToLower());
                    fileHeadersWarning.Add("BeatPlanStartDate".ToLower());
                    fileHeadersError.Add("ESM".ToLower());
                    fileHeadersError.Add("FinalBeatName".ToLower());


                    var            xfile       = new FileInfo(path);
                    ExcelPackage   package     = new ExcelPackage(xfile);
                    ExcelWorksheet sheet       = package.Workbook.Worksheets[1];
                    var            fileField   = sheet.Cells[sheet.Dimension.Start.Row, sheet.Dimension.Start.Column, sheet.Dimension.End.Row, sheet.Dimension.End.Column];
                    List <string>  headerError = new List <string>();
                    for (int i = sheet.Dimension.Start.Column; i <= sheet.Dimension.End.Column; i++)
                    {
                        var value = sheet.Cells[1, i].Value;
                        if (value != null)
                        {
                            string newValue = value.ToString().Trim().Replace(" ", "").ToLower();
                            if (newValue == "ESM".ToLower())
                            {
                                headerError.Add(newValue);
                            }
                            if (newValue == "FinalBeatName".ToLower())
                            {
                                headerError.Add(newValue);
                            }
                        }
                    }
                    var difference = fileHeadersError.Except(headerError);
                    if (difference.Any())
                    {
                        ErrorTemplates error = new ErrorTemplates();
                        error.ErrorType     = "Missing Header file";
                        error.ErrorComments = "Cannot go further Ensure these headers must be present" + string.Join(",", difference);
                        errorTemp.Add(error);
                        allErrors.Error = errorTemp;

                        return(View(allErrors));
                    }
                    List <string> headerCheck = new List <string>();
                    for (int i = 1; i <= sheet.Dimension.End.Column; i++)
                    {
                        if (sheet.Cells[1, i].Value != null)
                        {
                            headerCheck.Add(sheet.Cells[1, i].Value.ToString().Replace(" ", "").ToLower());
                        }
                    }
                    var difference2 = fileHeadersWarning.Except(headerCheck);
                    if (difference2.Any())
                    {
                        WarningTemplates warningTemplates = new WarningTemplates();
                        warningTemplates.Comments = "These Headers are missing do you wish to continue";
                        warningTemplates.Field    = string.Join(",", difference2);
                        warningTemp.Add(warningTemplates);
                    }

                    List <FileHeadersProductAddition>  list          = new List <FileHeadersProductAddition>();
                    List <FileHeadersBeatHierarchy>    list2         = new List <FileHeadersBeatHierarchy>();
                    List <FileHeadersLocationAddtion>  list3         = new List <FileHeadersLocationAddtion>();
                    List <FileHeadersBeatPlanAddition> list4         = new List <FileHeadersBeatPlanAddition>();
                    ExcelToObject.ExcelToObject        excelToObject = new ExcelToObject.ExcelToObject();

                    ListandError listerror = new ListandError();

                    listerror = excelToObject.listErrrorProductAddition(sheet);
                    list      = listerror.listProductAddition;
                    errorTemp.AddRange(listerror.error);

                    errorTemp = errorTemp.GroupBy(a => new { a.Row, a.Field_1, a.Field_2, a.ErrorType, a.ErrorComments, a.IncorrectHeaderList }, (key, g) => g.FirstOrDefault()).ToList();

                    errorTemp.AddRange(mapChecker.Checker(sheet, list2, list3, list, list4));



                    if (errorTemp.Count() != 0)
                    {
                        errorTemp         = errorTemp.Take(50).ToList();
                        allErrors.Error   = errorTemp.GroupBy(a => new { a.Row, a.Field_1, a.Field_2, a.ErrorType, a.ErrorComments, a.IncorrectHeaderList }, (key, g) => g.FirstOrDefault()).ToList();
                        allErrors.Warning = warningTemp.OrderBy(x => x.Row).GroupBy(a => new { a.Row, a.Field, a.Comments }, (key, g) => g.FirstOrDefault()).ToList();
                        //    allErrors.WarnHeaders = null;
                        return(View(allErrors));
                    }
                    MemoryStream memory      = new MemoryStream();
                    StreamWriter streamwiter = new StreamWriter(memory);
                    var          newCsv      = new CsvWriter(streamwiter);
                    newCsv.WriteHeader <FileHeadersBeatPlanAddition>();

                    foreach (var item in list4)
                    {
                        FileHeadersBeatPlanAddition temp = new FileHeadersBeatPlanAddition();
                        temp.BeatDay           = item.BeatDay;
                        temp.BeatPeriod        = item.BeatPeriod;
                        temp.BeatPlanStartDate = item.BeatPlanStartDate;
                        temp.ESM           = item.ESM;
                        temp.FinalBeatName = item.FinalBeatName;
                        newCsv.WriteRecord <FileHeadersBeatPlanAddition>(temp);
                    }
                    streamwiter.Flush();
                    return(File(memory.ToArray(), "text/csv", "data.csv"));
                }
            }
            catch (Exception ex)
            {
                var some  = c1;
                var some2 = c2;
                var excep = ex;
                return(View("Error"));
            }
            return(null);
        }
예제 #8
0
        public ActionResult Upload_LocationAddition(HttpPostedFileBase file)
        {
            string path = null;

            List <ErrorTemplates>   errorTemp   = new List <ErrorTemplates>();
            List <WarningTemplates> warningTemp = new List <WarningTemplates>();
            AllErrors allErrors = new AllErrors();

            allErrors.Error       = null;
            allErrors.ShowHeader  = null;
            allErrors.WarnHeaders = null;
            allErrors.Warning     = null;
            try
            {
                if (file.ContentLength > 0)
                {
                    string filename = Path.GetFileName(file.FileName);

                    path = Server.MapPath("~/Seed Data/" + filename);
                    file.SaveAs(path);
                    ValidationChecker mapChecker         = new ValidationChecker();
                    List <string>     WarningfileHeaders = new List <string>();
                    List <string>     ErrorfileHeaders   = new List <string>();
                    WarningfileHeaders.Add("ShopName".ToLower());
                    WarningfileHeaders.Add("Address".ToLower());
                    WarningfileHeaders.Add("Email".ToLower());
                    WarningfileHeaders.Add("Tin".ToLower());
                    WarningfileHeaders.Add("Pin".ToLower());
                    WarningfileHeaders.Add("MarketName".ToLower());
                    WarningfileHeaders.Add("City".ToLower());
                    WarningfileHeaders.Add("State".ToLower());
                    WarningfileHeaders.Add("Country".ToLower());
                    WarningfileHeaders.Add("ShopType".ToLower());
                    WarningfileHeaders.Add("Segmentation".ToLower());
                    WarningfileHeaders.Add("OwnersName".ToLower());
                    WarningfileHeaders.Add("OwnersContactNumber".ToLower());
                    WarningfileHeaders.Add("FinalBeatName".ToLower());
                    WarningfileHeaders.Add("ShopErpId".ToLower());
                    WarningfileHeaders.Add("ISFocused".ToLower());
                    WarningfileHeaders.Add("ConsumerType".ToLower());
                    WarningfileHeaders.Add("OutletPotential".ToLower());
                    WarningfileHeaders.Add("CodeId".ToLower());
                    ErrorfileHeaders.Add("FinalBeatName".ToLower());
                    ErrorfileHeaders.Add("ShopName".ToLower());
                    ErrorfileHeaders.Add("Market".ToLower());
                    ErrorfileHeaders.Add("City".ToLower());
                    ErrorfileHeaders.Add("State".ToLower());
                    try
                    {
                        var            xfile   = new FileInfo(path);
                        ExcelPackage   package = new ExcelPackage(xfile);
                        ExcelWorksheet sheet   = package.Workbook.Worksheets[1];

                        var           header      = sheet.Cells[1, 1, 1, sheet.Dimension.End.Column];
                        var           fileField   = sheet.Cells[sheet.Dimension.Start.Row, sheet.Dimension.Start.Column, sheet.Dimension.End.Row, sheet.Dimension.End.Column];
                        List <string> headerCheck = new List <string>();

                        for (int i = 0; i < sheet.Dimension.End.Column; i++)
                        {
                            if (((object[, ])fileField.Value)[0, i] != null)
                            {
                                headerCheck.Add(((object[, ])fileField.Value)[0, i].ToString().Replace(" ", "").ToLower());
                            }
                        }

                        var difference = WarningfileHeaders.Except(headerCheck);
                        if (difference.Any())
                        {
                            WarningTemplates warningTemplates = new WarningTemplates();
                            warningTemplates.Comments = "These Headers are missing do you wish to continue";
                            warningTemplates.Field    = string.Join(",", difference);
                            warningTemp.Add(warningTemplates);
                        }
                        List <string> headerError = new List <string>();
                        for (int i = sheet.Dimension.Start.Column - 1; i < sheet.Dimension.End.Column; i++)
                        {
                            var value = ((object[, ])fileField.Value)[0, i];
                            if (value != null)
                            {
                                if (value.ToString().Trim().Replace(" ", "").ToLower() == "FinalBeatName".ToLower())
                                {
                                    headerError.Add(value.ToString().Trim().Replace(" ", "").ToLower());
                                }
                                if (value.ToString().Trim().Replace(" ", "").ToLower() == "ShopName".ToLower())
                                {
                                    headerError.Add(value.ToString().Trim().Replace(" ", "").ToLower());
                                }
                                if (value.ToString().Trim().Replace(" ", "").ToLower() == "Market".ToLower())
                                {
                                    headerError.Add(value.ToString().Trim().Replace(" ", "").ToLower());
                                }
                                if (value.ToString().Trim().Replace(" ", "").ToLower() == "City")
                                {
                                    headerError.Add(value.ToString().Trim().Replace(" ", "").ToLower());
                                }
                                if (value.ToString().Trim().Replace(" ", "").ToLower() == "State")
                                {
                                    headerError.Add(value.ToString().Trim().Replace(" ", "").ToLower());
                                }
                            }
                        }
                        var difference1 = ErrorfileHeaders.Except(headerError);
                        if (difference1.Any())
                        {
                            ErrorTemplates error = new ErrorTemplates();
                            error.ErrorType     = "Missing Header file";
                            error.ErrorComments = "Cannot go further Ensure these headers must be present" + string.Join(",", difference1);
                            errorTemp.Add(error);
                            allErrors.Error = errorTemp;
                            return(View(allErrors));
                        }

                        List <FileHeadersLocationAddtion>  list  = new List <FileHeadersLocationAddtion>();
                        List <FileHeadersProductAddition>  list3 = new List <FileHeadersProductAddition>();
                        List <FileHeadersBeatHierarchy>    list2 = new List <FileHeadersBeatHierarchy>();
                        List <FileHeadersBeatPlanAddition> list4 = new List <FileHeadersBeatPlanAddition>();

                        ExcelToObject.ExcelToObject excelToObject = new ExcelToObject.ExcelToObject();

                        ListandError listerror = new ListandError();
                        listerror = excelToObject.listErrorLocationAddition(sheet);

                        errorTemp.AddRange(listerror.error);
                        list = listerror.listLocation;


                        //    warningTemp = mapChecker.WarningChecks(sheet, warningTemp);//Warnings
                        errorTemp.AddRange(mapChecker.Checker(sheet, list2, list, list3, list4));//Mapping checking

                        if (errorTemp != null)
                        {
                            allErrors.Error   = errorTemp.GroupBy(a => new { a.Row, a.Field_1, a.Field_2, a.ErrorType, a.ErrorComments, a.IncorrectHeaderList }, (key, g) => g.FirstOrDefault()).ToList();
                            allErrors.Warning = warningTemp.OrderBy(x => x.Row).GroupBy(a => new { a.Row, a.Field, a.Comments }, (key, g) => g.FirstOrDefault()).ToList();
                            // allErrors.ShowHeader = null;
                            return(View(allErrors));
                        }
                        Session["LocationAdditionObjectList"] = list;

                        return(RedirectToAction("CompanySelect"));
                    }
                    catch
                    {
                        return(View("Error"));
                    }
                }
            }
            catch
            {
                return(View("Error"));
            }
            return(null);
        }
예제 #9
0
        public ActionResult Upload(HttpPostedFileBase file)
        {
            string path  = null;
            int    count = 0;
            List <ErrorTemplates>   errorTemp   = new List <ErrorTemplates>();
            List <WarningTemplates> warningTemp = new List <WarningTemplates>();
            AllErrors allErrors = new AllErrors();

            allErrors.Error       = null;
            allErrors.ShowHeader  = null;
            allErrors.WarnHeaders = null;
            allErrors.Warning     = null;
            try
            {
                if (file.ContentLength > 0)
                {
                    string filename = Path.GetFileName(file.FileName);

                    path = Server.MapPath("~/Seed Data/" + filename);
                    file.SaveAs(path);
                    ValidationChecker mapChecker         = new ValidationChecker();
                    List <string>     WarningfileHeaders = new List <string>();
                    List <string>     ErrorfileHeaders   = new List <string>();
                    WarningfileHeaders.Add("NSM".ToLower());                 //---------------------cell1
                    WarningfileHeaders.Add("NSMZone".ToLower());
                    WarningfileHeaders.Add("NSMEmailId".ToLower());          //---------------------cell3
                    WarningfileHeaders.Add("NSMSecondaryEmailId".ToLower()); //---------------------cell4
                    WarningfileHeaders.Add("ZSM".ToLower());                 //---------------------cell5
                    WarningfileHeaders.Add("ZSMEmailId".ToLower());          //---------------------cell6
                    WarningfileHeaders.Add("ZSMZone".ToLower());             //---------------------cell7
                    WarningfileHeaders.Add("ZSMSecondaryEmailId".ToLower()); //---------------------cell8
                    WarningfileHeaders.Add("RSM".ToLower());                 //---------------------cell9
                    WarningfileHeaders.Add("RSMEmailId".ToLower());          //---------------------cell10
                    WarningfileHeaders.Add("RSMSecondaryEmailId".ToLower()); //---------------------cell11
                    WarningfileHeaders.Add("ASM".ToLower());                 //---------------------cell12
                    WarningfileHeaders.Add("ASMEmailId".ToLower());          //---------------------cell13
                    WarningfileHeaders.Add("ASMZone".ToLower());             //---------------------cell14
                    WarningfileHeaders.Add("ASMSecondaryEmailId".ToLower()); //---------------------cell15
                    WarningfileHeaders.Add("ESM".ToLower());                 //---------------------cell16
                    WarningfileHeaders.Add("ESMEmailId".ToLower());          //---------------------cell17
                    WarningfileHeaders.Add("ESMZone".ToLower());             //---------------------cell18
                    WarningfileHeaders.Add("ESMSecondaryEmailId".ToLower()); //---------------------cell19
                    WarningfileHeaders.Add("ESMContactNumber".ToLower());    //---------------------cell20
                    WarningfileHeaders.Add("ESMHQ".ToLower());
                    WarningfileHeaders.Add("ESMErpId".ToLower());            //---------------------cell21
                    WarningfileHeaders.Add("FinalBeatName".ToLower());       //---------------------cell22
                    WarningfileHeaders.Add("BeatErpId".ToLower());           //---------------------cell23
                    WarningfileHeaders.Add("BeatDistrict".ToLower());        //---------------------cell24
                    WarningfileHeaders.Add("BeatState".ToLower());           //---------------------cell25
                    WarningfileHeaders.Add("BeatZone".ToLower());            //---------------------cell26
                    WarningfileHeaders.Add("DistributorName".ToLower());     //---------------------cell27
                    WarningfileHeaders.Add("DistributorLocation".ToLower()); //---------------------cell28
                    WarningfileHeaders.Add("DistributorErpId".ToLower());    //---------------------cell29
                    WarningfileHeaders.Add("DistributorEmailId".ToLower());  //---------------------cell20
                    ErrorfileHeaders.Add("FinalBeatName".ToLower());
                    ErrorfileHeaders.Add("BeatState".ToLower());
                    ErrorfileHeaders.Add("BeatDistrict".ToLower());
                    try
                    {
                        var            xfile   = new FileInfo(path);
                        ExcelPackage   package = new ExcelPackage(xfile);
                        ExcelWorksheet sheet   = package.Workbook.Worksheets[1];

                        var           header      = sheet.Cells[1, 1, 1, sheet.Dimension.End.Column];
                        var           fileField   = sheet.Cells[sheet.Dimension.Start.Row, sheet.Dimension.Start.Column, sheet.Dimension.End.Row, sheet.Dimension.End.Column];
                        List <string> headerError = new List <string>();
                        for (int i = sheet.Dimension.Start.Column; i <= sheet.Dimension.End.Column; i++)
                        {
                            var value = sheet.Cells[1, i].Value;
                            if (value != null)
                            {
                                string newValue = value.ToString().Trim().Replace(" ", "").ToLower();
                                if (newValue == "FinalBeatName".ToLower())
                                {
                                    headerError.Add(newValue);
                                }
                                if (newValue == "BeatState".ToLower())
                                {
                                    headerError.Add(newValue);
                                }
                                if (newValue == "BeatDistrict".ToLower())
                                {
                                    headerError.Add(newValue);
                                }
                            }
                        }
                        var difference1 = ErrorfileHeaders.Except(headerError);
                        if (difference1.Any())
                        {
                            ErrorTemplates error = new ErrorTemplates();
                            error.ErrorType     = "Missing Header file";
                            error.ErrorComments = "Cannot go further Ensure these headers must be present" + string.Join(",", difference1);
                            errorTemp.Add(error);
                            allErrors.Error = errorTemp;
                            return(View(allErrors));
                        }
                        List <string> headerCheck = new List <string>();
                        for (int i = 0; i < sheet.Dimension.End.Column; i++)
                        {
                            if (((object[, ])fileField.Value)[0, i] != null)
                            {
                                headerCheck.Add(((object[, ])fileField.Value)[0, i].ToString().Replace(" ", "").ToLower());
                            }
                        }

                        var difference = WarningfileHeaders.Except(headerCheck);
                        if (difference.Any())
                        {
                            WarningTemplates warningTemplates = new WarningTemplates();
                            warningTemplates.Comments = "These Headers are missing do you wish to continue";
                            warningTemplates.Field    = string.Join(",", difference);
                            warningTemp.Add(warningTemplates);
                        }



                        warningTemp.AddRange(mapChecker.WarningChecks(sheet, warningTemp));//Warnings



                        //Excel to object

                        List <FileHeadersBeatHierarchy>   list  = new List <FileHeadersBeatHierarchy>();
                        List <FileHeadersProductAddition> list2 = new List <FileHeadersProductAddition>();

                        List <FileHeadersLocationAddtion>  list3         = new List <FileHeadersLocationAddtion>();
                        List <FileHeadersBeatPlanAddition> list4         = new List <FileHeadersBeatPlanAddition>();
                        ExcelToObject.ExcelToObject        excelToObject = new ExcelToObject.ExcelToObject();

                        ListandError listerror = new ListandError();

                        listerror = excelToObject.listWithErrorBeatHiearachy(sheet);
                        list      = listerror.listBeatHierarchy;
                        errorTemp.AddRange(listerror.error);
                        errorTemp.AddRange(mapChecker.Checker(sheet, list, list3, list2, list4));

                        if (errorTemp != null)
                        {
                            allErrors.Error   = errorTemp.GroupBy(a => new { a.Row, a.Field_1, a.Field_2, a.ErrorType, a.ErrorComments, a.IncorrectHeaderList }, (key, g) => g.FirstOrDefault()).ToList();
                            allErrors.Warning = warningTemp.OrderBy(x => x.Row).GroupBy(a => new { a.Row, a.Field, a.Comments }, (key, g) => g.FirstOrDefault()).ToList();
                            return(View(allErrors));
                        }
                        //write csv

                        Session["BeatHierarchy"] = list;
                        return(RedirectToAction("CompanySelect"));
                    }
                    catch (Exception ex)
                    {
                        var c     = count;
                        var error = ex;
                        return(View("Error"));
                    }
                }
            }
            catch (Exception ex)
            {
                var error = ex;
                return(View("Error"));
            }


            return(null);
        }